我有一个使用Node.js作为服务器端,Socket.io作为连接机制的客户端/服务器应用程序。由于我的应用程序相关原因,我想每个浏览器只保持一条活动连接,并拒绝后面在会话期间打开的其他选项卡的所有连接。这对WebSockets非常有效,但如果浏览器不支持WebSockets并且使用XHR-polling,断开连接永远不会发生,所以如果用户刷新页面,这并不被解释为重新连接(我有重连和会话恢复的延迟),而是作为新选项卡结束,导致连接被拒绝,因为此选项卡创建的旧连接仍然是活动的。
我正在寻找一种在刷新时从客户端有效地结束连接的方法。我尝试绑定到
我阅读了this question,但在我的特定情况下找不到有用的信息。
我正在寻找一种在刷新时从客户端有效地结束连接的方法。我尝试绑定到
beforeunload
并在客户端上调用socket.disconnect()
,还尝试发送像socket.emit('force-disconnect')
这样的消息,并通过服务器触发断开连接,但都没有成功。我错过了什么吗?感谢您的帮助!我阅读了this question,但在我的特定情况下找不到有用的信息。