javascript - 当用户关闭浏览器时,Socket.io 不会关闭连接

标签 javascript node.js sockets

我有一个套接字服务器(socket.io + nodejs)和一个套接字客户端(socket.io)。问题在于,当用户关闭浏览器时,客户端连接仍然保持打开状态,从而产生大量死连接。

例如,当我打开浏览器并运行此命令“lsof -i -n -P | grep node | grep ‘我的 IP 地址’”时,我有一个连接。当我关闭浏览器并再次运行该命令时,连接保持打开状态。

非常感谢大家愿意帮助我!

最佳答案

尝试在客户端使用socket.disconnect(),这应该可行。

一旦服务器或客户端触发断开连接,连接就不应该打开。您的服务器端代码中肯定存在其他问题。 尝试使用它来关闭服务器端的连接

socket.on('terminate', function (){
    socket.disconnect(0);
});

在客户端:

var io = io();
io.emit('terminate');

看看它是否适合你。 谢谢

关于javascript - 当用户关闭浏览器时,Socket.io 不会关闭连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38053300/

相关文章:

python - "someVariable is None"始终为 false w/从 optparse 结果派生的值

php - 套接字、PHP、本地端口

python - 如何在 Python 3.7 中向 multiprocessing.connection.Client(..) 添加超时?

javascript - Div 右对齐并根据右侧的其他 Div 更改 x 位置

javascript - 点击图片不改变

javascript - 当用户上下滚动时移动页面上的元素

node.js - MongoDB 获取至少有一个非空数组的文档

javascript - 字母数字的正则表达式,没有空格和 9 个字符输入?

javascript - 在 Nodejs 4.x 中从不同文件位置重用异步函数的有效方法是什么?

javascript - 无法在 PUG/JADE 中显示用户列表