2011-12-13 35 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

它肯定是一个有趣的项目,但它的核心并不是我想要的。我认为他们也管他们的数据,不能共享相同的流/套接字。 –