node.js - 如何完全破坏 socket.io 连接?

标签 node.js sockets socket.io

我正在从 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/

相关文章:

c - curl 套接字挂起

javascript - 如何使用 sails.js 和 socket.io 进行在线游戏服务器端

javascript - 为什么 Promise.then() 中的代码没有被调用?

javascript - 在 express 中使用 sendfile 作为静态 html 文件路由的一部分时,会下载关联的 .js 和 .css 文件,但不会应用。

python - TCP 连接被对等方重置且传输端点未连接

ssl - Socket.IO 聊天应用 + SSL + NGINX

javascript - 如果页面刷新速度足够快,则不会调用 socket.io 'disconnect'

javascript - JHipster 7.1.0 ReactJS 构建 jar

javascript - 当应用程序部署到云时,.js 文件将与 index.html 的内容一起提供

c - getpeername() 不会返回正确的端口,但会返回正确的远程主机套接字地址 C 语言