1

我正在从 Socket.io 和 Node.js 创建一个浏览器聊天。一切都运行顺利,但我似乎在断开套接字时遇到了问题。当我运行socket.disconnet();时,服务器运行socket.on("disconnect",事件,但它实际上并没有从内部侦听器中删除套接字。

当我socket.disconnect();在套接字上运行时,套接字不再接收任何新消息,但是当“断开连接”的用户发送消息时,服务器接收并将其发送回所有客户端。我想创建一个正确的/kick命令,但是当我必须重组所有代码以适应一个简单的功能时,这很困难。

socket.connection.destroy();socket.end();和等命令socket.transport.destroy();无效且未定义。有没有人有什么建议?shutup我已经解决这个问题好几天了,除了为套接字设置一个布尔值并告诉消息事件忽略特定的套接字之外,我没有找到任何答案。这是最好的方法吗?如果用户开始编辑 javascript 代码并且我需要一种从客户端接收其他事件的方法,会发生什么?

4

2 回答 2

0

好吧,您可以查看套接字是否已连接。如果套接字已连接,您可以发出数据,反之亦然。:) 希望能帮助到你..!

YourProject.sockets.on('connection',function(socket){     
  setInterval(function(){   
    if(!socket.disconnected){
      socket.emit('entrance',{message:'Hey Bro'}); 
    }      
  },10000);        
});
于 2014-01-03T09:18:43.947 回答
-1

您是否尝试过中断线程?这应该以异常结束所有 I/O 操作。

于 2013-04-10T05:13:19.293 回答