我必须使用服务器和socket.io作为连接机制上一个的NodeJS客户端/服务器应用程序。 对于我的应用程序相关的原因,我想有每个浏览器只有一个活动的连接,并拒绝来自可在会话期间稍后打开其他选项卡的所有连接。 这个伟大的工程使用WebSockets,但是如果的WebSockets不是由浏览器和XHR轮询支持来代替,断开不会发生,因此,如果用户只需刷新页面,这不被解释为再连接(我有一个延迟重新连接和会话恢复),但作为一个新的选项卡,在连接从而结束被拒绝,因为此相同的选项卡中所做的老连接仍然有效。
我正在寻找一种方式来有效地从结束时刷新发生在客户端的连接。 我试着结合beforeunload
并调用socket.disconnect()
在客户端,并且还发送这样的消息socket.emit('force-disconnect')
并从没有成功服务器触发断开。 我失去了一些东西在这里? 感谢您的帮助!
我读过这个问题 ,但没有找到它为我的特殊情况下非常有用。