我使用的Netty的WebSockets,一切似乎除了這個小問題,做工精細WebSocket連接沒有關閉當使用Mozilla Firefox(目前使用Firefox 14)時關閉,但同樣的事情在Chrome 20/21中不會發生。鉻:當瀏覽器關閉
任何人都看到了類似的問題/誰能告訴爲什麼連接不自動關閉?
我使用的Netty的WebSockets,一切似乎除了這個小問題,做工精細WebSocket連接沒有關閉當使用Mozilla Firefox(目前使用Firefox 14)時關閉,但同樣的事情在Chrome 20/21中不會發生。鉻:當瀏覽器關閉
任何人都看到了類似的問題/誰能告訴爲什麼連接不自動關閉?
我想我應該檢查中鉻的錯誤一節前面,但我不知道這是否是一個錯誤。 前面已經有人報告和鉻的bug已經存在:
Issue 51687 : WebSocket: Send close with code 1001 on reload/tab close
更新:有人提交了一個補丁來解決這個問題,可以在上面的鏈接中可以看出。
這可能不是正確的,但我不能張貼到你的問題發表評論。如果您的應用程序正在運行,並且已選擇「關閉Chromium時繼續運行後臺應用程序」,則Chrome/Chromium並不會真正關閉。
這可能是因爲它將該WebSocket連接作爲一個應用程序。試着看看你的運行過程,並殺死你發現的任何鉻/鉻過程。
再次,這只是我的猜測。
Chrome不關閉連接,當用戶將關閉窗口或瀏覽器。 它會觸發一個錯誤事件。
可能的解決方法看起來是這樣的:
@OnError
public void onErr(Throwable t) {
onClose(this.container.getWsSession(), null);
}
但這每次將關閉連接,錯誤被觸發。您可能無法在自行關閉連接之前檢查可丟棄物。
更多的討論,請加入這樣一個問題:
Websocket: Closing browser triggers onError() in chrome but onClose() event in Firefox
關閉瀏覽器時,Chrome仍然不會關閉連接。 :( – Goot 2014-05-12 00:18:07