1

如果问题很简单,请原谅我,但我不知道在这种一般情况下会发生什么:如果由于某些问题或故障/系统故障(任何类型的故障等)浏览器崩溃,websocket 会发生什么正在运行的连接?它会被关闭还是会是什么状态?

我正在使用 netty websocket 实现。现在,具体在netty websocket实现中,在上述场景中,会发生什么?(当我尝试时,我得到这个:如果我手动关闭浏览器,连接就会关闭,但是如果我终止浏览器进程,这不会发生)。如果连接没有关闭,我如何在发送消息时检测/处理它,否则在发送消息ClosedChannelException时,尝试发送消息时会发生。

编辑:除了检查上述错误,有没有办法知道使用 netty 实现时 websocket 连接已关闭?

4

1 回答 1

4

我认为您必须捕获 ClosedChannelException 并以与完全关闭的连接相同的方式处理它。

如果您的 websocket 会话很昂贵,并且您想更快地发现被终止的连接,您可以定期向每个客户端发送ping请求。Netty 有一个 PingWebSocketFrame 类,看起来它会为你提供支持。

于 2012-07-30T09:44:45.580 回答