我正在从Socket.io和Node.js创建浏览器聊天。一切都运行顺利,但我似乎遇到了断开插座的问题。当我运行socket.disconnet();
时,服务器运行socket.on("disconnect",
事件,但它实际上并没有从内部侦听器中删除套接字。
当我在套接字上运行socket.disconnect();
时,套接字不再接收任何新消息,但当“已断开连接”的用户发送消息时,服务器会接收并将其发送回所有客户端。我想创建一个正确的/kick
命令,但是当我必须重构我的所有代码以适应简单的函数时,这很困难。
socket.connection.destroy();
,socket.end();
和socket.transport.destroy();
等命令无效且未定义。有没有人有什么建议?我已经解决了这个问题好几天了,除了在套接字上设置一个shutup
布尔值并告诉消息事件忽略特定的套接字之外,我还没有找到任何答案。这是最好的方法吗?如果用户开始编辑javascript代码并且我需要从客户端接收其他事件的方式会发生什么?
答案 0 :(得分:0)
你可以看看套接字是否已连接。如果已连接套接字,则可以发出数据,反之亦然。 :) 希望能帮助到你..!
YourProject.sockets.on('connection',function(socket){
setInterval(function(){
if(!socket.disconnected){
socket.emit('entrance',{message:'Hey Bro'});
}
},10000);
});
答案 1 :(得分:-1)