2011-12-13 38 views
6

我讀過可以在進程之間共享套接字。這在Node.js中也是可行的嗎?node.js - 在進程之間共享套接字

我在node.js中看到了cluster api,但那不是我要找的東西。我希望能夠在一個進程中接受連接,也許可以發送&讀一下,並在一段時間後將此套接字傳遞給另一個完全獨立的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. 

我認爲這是可能的「FD」屬性設置爲套接字的文件描述符,然後打開與此插座。但是...如何獲取套接字的filedescriptor並將其傳遞給需要它的進程?

感謝您的幫助!

+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

它肯定是一個有趣的項目,但它的核心並不是我想要的。我認爲他們也管他們的數據,不能共享相同的流/套接字。 –