我使用的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