在node.js中保持打开一个tcp套接字

我打开一个tcp连接到一个服务器很容易做到,但我需要一种方法来保持打开的套接字,而不必一次又一次地调用net.createConnection(port, host)

我想实现的是一个套接字服务器,它接受多个连接,然后通过一个套接字通道请求,如上所述。 然后我需要将响应传递给正确的套接字。 但是,我唯一的问题是维护一个开放的套接字,我试图在侦听服务器代码之外创build。

我已经用Singleton模式接近它来创build套接字..

 var Singleton = (function() { var socket = null; function connectToHost(port, host) { socket = net.createConnection(port, host); return socket; } return { connectToHost: connectToHost }; })(); 

但从我可以看到,在事件('结束')该套接字不再可写。 如果我重新连接sockets。

 socket.on('end', function() { socket = Singleton.connectToHost(port, host); }); 

Event('end')会发生同样的事情。

我怎么能这样做,以便我可以创build和维护一个套接字连接?

迟到的回应。

如果我正确理解你的问题,你正在尝试做这样的事情?

 socket.on('close', function() { socket.connect(port, host); }); 

根据networkingNode.js v.0.12.0文档

它可能工作,但它会锤击服务器很糟糕,所以setTimeout可能是明智的。

我很好奇你最终结束了什么?

这听起来像你想要一个多路复用器/解复用器(多路复用器/多路解复用器)在你的服务器前面,大概是这样答复的前端可以正确路由答复的方式。

TCP没有任何东西可以支持这个,所以你必须自己写或者find一个已经写好的东西。 http://www.google.com/search?q=tcp+multiplexer

这个链接看起来很有希望: http : //sourceforge.net/projects/tcpmultiplexer/

(不要把你要找的东西和端口#1上的“tcpmux”混淆起来,这是完全不同的。)