浏览器特有的Web套接字错误关闭代码



我在我的应用程序中使用Websockets用于流目的。为此,我在后端使用Jetty

对于onclose回调方法,我有这个

@Override
    public void onClose(int arg0, String arg1) {
        logger.info("In onClose :: " + arg0 + " :: " + arg1);
}

我观察到的是,错误代码不是通用的,而是特定于浏览器的

当我使用chrome浏览器时,它显示1006,如果浏览器使用ctrl+w关闭,单击交叉按钮,甚至用户单击注销按钮

但是在firefox中,如果使用ctrl+w关闭浏览器,单击Cross Button,甚至用户单击logout按钮,则显示1001

现在的问题是,我真的无法确定为什么断开连接已经发生,因为它是一个特定的浏览器??

请分享你的意见,如何调试在这种情况下??

这可能有帮助:

https://www.rfc-editor.org/rfc/rfc6455 section-7.4.1

专:

1001表示端点正在"离开",例如服务器向下或浏览器已经从页面导航。>

1006是一个保留值,绝对不能设置为状态码通过端点关闭控制帧。它被指定用于应用程序需要一个状态码来指示连接异常关闭,例如,未发送或接收关闭控制帧。

所以我猜你是从服务器的角度来看待这个问题的,在这种情况下,1006将表明chrome端点表现不佳,服务器用特殊的关闭代码对此做出反应。在您的客户端,我将开始调试它,以确保它使其成为所需的任何关闭代码,以获得实际关闭代码1001返回到服务器。现在,您可能无法在所有场景中都关闭逻辑,这就是为什么首先存在此关闭代码的原因,但是您至少应该能够通过自己的注销按钮干净地关闭连接。

相关内容

  • 没有找到相关文章

最新更新