我正在打开一个到服务器的tcp连接,这很容易做到,但我需要一种方法来保持该套接字打开而不必一次又一次地调用net.createConnection(port, host)
。
我正在尝试实现的是一个套接字服务器,它接受多个连接然后通过一个套接字引导请求,如上所述。然后我需要将响应引导到正确的套接字。但是,我唯一的问题是维护一个打开的套接字,我试图在监听服务器代码之外创建它。
我用Singleton模式接近它以创建套接字..
var Singleton = (function() {
var socket = null;
function connectToHost(port, host) {
socket = net.createConnection(port, host);
return socket;
}
return {
connectToHost: connectToHost
};
})();
但是从我所看到的,在Event('end')上,socket不再可写。如果我重新连接插座。
socket.on('end', function() {
socket = Singleton.connectToHost(port, host);
});
事件('结束')也会发生同样的事情。
如何处理此问题以便创建和维护一个套接字连接?
答案 0 :(得分:1)
对此的迟到反应。
如果我理解你的问题,你是不是想做这样的事情?
socket.on('close', function() {
socket.connect(port, host);
});
根据net Node.js v.0.12.0 documentation
它可能有用,但它会严重影响服务器,所以setTimeout
可能是明智的。
我很好奇:到底你最终得到了什么?
答案 1 :(得分:0)
听起来你想要在服务器前面使用多路复用器/多路分解器(多路复用器/多路分解器),这可能会以前端可以正确路由回复的方式进行回复。
TCP中没有任何内容可以支持这一点,因此您必须自己编写或找到已编写的文件。 http://www.google.com/search?q=tcp+multiplexer
此链接看起来很有希望:http://sourceforge.net/projects/tcpmultiplexer/
(不要在端口#1上混淆你想要的“tcpmux”;这完全不同。)