2011-12-13 18 views
6

मैंने पढ़ा है कि प्रक्रियाओं के बीच सॉकेट साझा करने के लिए संभव है यह। क्या यह नोड.जेएस में भी संभव है?Node.js - प्रक्रियाओं के बीच शेयर सॉकेट

मैं Node.js में क्लस्टर एपीआई देखा, लेकिन नहीं यही क्या मैं की तलाश में। मैं एक प्रक्रिया में कनेक्शन स्वीकार करने में सक्षम होना चाहता हूं, शायद & थोड़ा सा पढ़ें, और थोड़ी देर बाद इस सॉकेट को किसी अन्य पूरी तरह से स्वतंत्र node.js प्रक्रिया में पास करें।

मैं इसे पहले से ही पाइपिंग के साथ कर सकता हूं, लेकिन मैं ऐसा नहीं करना चाहता, क्योंकि यह सीधे सॉकेट को पढ़ने/लिखने जितना तेज़ नहीं है।

कोई विचार?

अद्यतन मैं Node.js दस्तावेज में निम्नलिखित प्रविष्टि पाया:

new net.Socket([options]) # 
Construct a new socket object. 

options is an object with the following defaults: 

{ fd: null 
    type: null 
    allowHalfOpen: false 
} 
fd allows you to specify the existing file descriptor of socket. type specified underlying protocol. It can be 'tcp4', 'tcp6', or 'unix'. About allowHalfOpen, refer to createServer() and 'end' event. 

मुझे लगता है कि यह सॉकेट की filedescriptor करने के लिए "fd" गुण सेट और फिर खोलने के लिए संभव हो जाएगा उस के साथ सॉकेट। लेकिन ... मैं सॉकेट के दायरलेखक कैसे प्राप्त कर सकता हूं और इसे उस प्रक्रिया में पास कर सकता हूं जिसकी आवश्यकता है?

किसी भी मदद के लिए धन्यवाद!

+2

एकाधिक प्रक्रियाओं के बीच एक सॉकेट साझा करना समरूपता और लॉकिंग दुःस्वप्न के लिए पूछ रहा है – Raynos

उत्तर

1

इस समय यह संभव नहीं है, लेकिन मैंने इसे नोड समस्या पृष्ठ के लिए एक सुविधा अनुरोध के रूप में जोड़ा है।

अद्यतन इस बीच, मैंने इसके लिए एक मॉड्यूल लिखा है। आप इसे यहां पा सकते हैं: https://github.com/VanCoding/node-ancillary

+0

यह काम socket.io के साथ भी करता है? – InsOp

0

आप शायद पर hook.io

hook.io एक बार देख ले करना चाहते हैं node.js. पर बनाया गया एक वितरित EventEmitter है एक न्यूनतम घटना ढांचा प्रदान करने के अलावा, hook.io भी इनपुट और आउटपुट के सभी प्रकार के प्रबंधन के लिए हुक पुस्तकालयों का एक समृद्ध नेटवर्क प्रदान करता है।

+0

hook.io निश्चित रूप से इस प्रश्न का उत्तर नहीं है, यह उससे कहीं अधिक है - और कई लोगों के लिए यह होगा बहुत अधिक – Tom

+0

टॉम, इस बात पर सहमत हुए कि यह बहुत कुछ है, लेकिन वहां "उदाहरण" होना चाहिए कि वैन – Tristan

+1

के कार्यान्वयन के अंदर खोद सकता है यह निश्चित रूप से एक दिलचस्प प्रोजेक्ट प्रतीत होता है, लेकिन यह मूल रूप से, जो मैं चाहता हूं वह नहीं करता । मुझे लगता है कि वे अपने डेटा को पाइप भी करते हैं और एक ही स्ट्रीम/सॉकेट साझा करने में सक्षम नहीं हैं। –

संबंधित मुद्दे