我正在使用 Netty websockets,除了这个小问题,一切似乎都运行良好:
如果我关闭 js websocket 客户端的浏览器/选项卡,则在使用 Mozilla firefox(当前使用 firefox 14)时会自动关闭 websocket 连接,但在 Chrome 20/21 中不会发生同样的事情。
任何人都见过类似的问题/谁能告诉为什么连接没有自动关闭?
我正在使用 Netty websockets,除了这个小问题,一切似乎都运行良好:
如果我关闭 js websocket 客户端的浏览器/选项卡,则在使用 Mozilla firefox(当前使用 firefox 14)时会自动关闭 websocket 连接,但在 Chrome 20/21 中不会发生同样的事情。
任何人都见过类似的问题/谁能告诉为什么连接没有自动关闭?
我想我应该在铬错误部分早些时候检查过这个,但我不确定它是否是一个错误。之前有人报告过,并且已经存在铬错误:
问题 51687:WebSocket:在重新加载/标签关闭时发送关闭代码 1001
更新:有人提交了一个补丁来解决这个问题,可以在上面的链接中看到。
这可能不对,但我无法对您的问题发表评论。如果您有一个正在运行的应用程序并从“设置”->“幕后”中选择了“在 Chromium 关闭时继续运行后台应用程序”,Chrome/Chromium 并不会真正关闭。
可能是将 websocket 连接视为应用程序。尝试查看您正在运行的进程并终止您找到的任何 chrome/chromium 进程。
同样,这只是我的猜测。
当用户关闭窗口或浏览器时,Chrome 不会关闭连接。它将触发一个错误事件。
一种可能的解决方法可能如下所示:
@OnError
public void onErr(Throwable t) {
onClose(this.container.getWsSession(), null);
}
但这每次都会关闭连接,触发错误。在自行关闭连接之前,您可能不想检查可投掷物。
如需更多讨论,请加入此问题: