我有一个套接字服务器(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/