【发布时间】:2014-04-10 12:39:59
【问题描述】:
我将 NodeJS 与 socket.io 一起用于我的聊天应用程序。当客户端刷新/关闭窗口或导航到不同的 URL 时,我需要客户端向 NodeJS 服务器发出“断开连接”事件。 IE8/9 的所有功能都很好。当刷新发生时,“断开连接”事件不会发送到服务器,因此服务器不知道这个特定的客户端不再连接。
我设法使用:
window.onbeforeunload = function(e) {
socket.disconnect();
};
这会负责单击后退/前进按钮,然后通知服务器有关客户端断开连接。但是,刷新页面或关闭选项卡不会向服务器发送断开连接。似乎刷新页面太快了,所以socket.disconnect() 没有执行的机会。好像我像下面这样发出警报,客户端暂停警报窗口,服务器收到断开消息。
window.onbeforeunload = function(e) {
socket.disconnect();
alert("hey watchout!");
};
现在,有什么方法可以让 IE8/9 在页面刷新时向 NodeJS 发送断开连接事件?
【问题讨论】: