2012-08-01 300 views
10

我使用的Netty的WebSockets,一切似乎除了这个小问题,做工精细WebSocket连接没有关闭当使用Mozilla Firefox(目前使用Firefox 14)时关闭,但同样的事情在Chrome 20/21中不会发生。铬:当浏览器关闭

任何人都看到了类似的问题/谁能告诉为什么连接不自动关闭?

回答

6

我想我应该检查中铬的错误一节前面,但我不知道这是否是一个错误。 前面已经有人报告和铬的bug已经存在:

Issue 51687 : WebSocket: Send close with code 1001 on reload/tab close

更新:有人提交了一个补丁来解决这个问题,可以在上面的链接中可以看出。

+1

关闭浏览器时,Chrome仍然不会关闭连接。 :( – Goot 2014-05-12 00:18:07

1

这可能不是正确的,但我不能张贴到你的问题发表评论。如果您的应用程序正在运行,并且已选择“关闭Chromium时继续运行后台应用程序”,则Chrome/Chromium并不会真正关闭。

这可能是因为它将该WebSocket连接作为一个应用程序。试着看看你的运行过程,并杀死你发现的任何铬/铬过程。

再次,这只是我的猜测。

+0

不,我不认为在关闭的标签,以便即使禁用该选项后,WebSocket连接不会被关闭。 – Rndm 2012-08-01 09:53:59

+0

这可能是Chrome中的一个bug。您应该使用铬项目打开一个错误报告。 – 2012-08-01 09:55:44

+0

我在这里发布它以确认是否有其他人看过它或有一些选项可用来解决它。 – Rndm 2012-08-01 09:56:53

0

Chrome不关闭连接,当用户将关闭窗口或浏览器。 它会触发一个错误事件。

可能的解决方法看起来是这样的:

@OnError 
    public void onErr(Throwable t) { 
     onClose(this.container.getWsSession(), null); 

    } 

但这每次将关闭连接,错误被触发。您可能无法在自行关闭连接之前检查可丢弃物。

更多的讨论,请加入这样一个问题:

Websocket: Closing browser triggers onError() in chrome but onClose() event in Firefox