繁体   English   中英

Node.js套接字由另一方终止

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM