我的应用程序正在使用 netty 创建 websockets ,但在一些操作后它突然停止

问题描述

我正在使用 netty websocket(java) 连接到 asterisk 媒体服务器并从服务器接收事件。然而,在某些事件之后,websocket 停止运行并且应用程序冻结。我的问题是 websocket 是否会阻塞或者 websocket 停止使用的可能原因是什么?

解决方法

原因可以是任何东西。其中一些是:

  1. 由于防火墙或网络拥塞导致网络/tcp 套接字冻结

  2. Asterisk 重新启动或 asterisk 中的错误

  3. Java 库中的错误。

最现实的选择是每 X 秒发送一次 ping 事件或发起触发事件的假呼叫。这就是所谓的心跳。如果超过 Y 秒没有收到心跳响应,请重新启动连接。