1
我使用帶有socket.io的NodeJS作爲我的聊天應用程序。當客戶端刷新/關閉窗口或導航到不同的URL時,我需要客戶端向NodeJS服務器發出「disconnect」事件。所有的作品都與IE8/9的兼容性很好。發生刷新時,「disconnect」事件不會發送到服務器,因此服務器不知道該特定客戶端不再連接。Socket.io不會在IE8/9中向NodeJS發送斷開連接事件
我設法利用:
window.onbeforeunload = function(e) {
socket.disconnect();
};
而這需要單擊後退/前進按鈕的照顧,然後服務器告知客戶端斷開。刷新頁面或關閉選項卡不會發送斷開連接到服務器。看來刷新頁面太快所以socket.disconnect()
不具有執行的機會。看起來好像如果我像下面一樣警告,客戶端暫停警報窗口並且服務器收到斷開連接消息。
window.onbeforeunload = function(e) {
socket.disconnect();
alert("hey watchout!");
};
現在,有什麼辦法讓頁面刷新時IE8/9發送斷開連接事件給NodeJS嗎?