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