[英]node-postgres: [error] This socket has been ended by the other party
[英]Node.js socket ended by other party
我有一个基于Node.js的TCP服务器。 连接新的套接字后,我将它们包装在一个客户端对象中:
net.createServer(function(socket){
socket.setEncoding("utf8");
socket.name = socket.remoteAddress + ':' + socket.remotePort;
var client = cm.create(socket);
}).listen(this.settings.port);
当客户端断开连接时,如何防止自己写入套接字? 我知道会发生诸如“关闭”,“错误”和“结束”之类的事件,但我不知道这些事件将如何帮助我。
据我了解,这些事件只会在我尝试将数据写入关闭的套接字时触发。 但是到那个时候,错误就被抛出了。
似乎仅处理错误事件本身可以防止发生未处理的错误异常。 谁曾想到?
client.socket.on('error', function(){
console.log("CLIENT HAS ERRORED")
});
这可以防止节点应用程序死亡。
您可以执行以下伪代码:
var active = true;
var connection = createConnection();
connection.onExit(function() { active = false; });
while (active){
connection.talk();
}
因此,您的通信线程共享一个变量,套接字关闭时发生的回调可访问该变量。 这样他们就可以交流。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.