can netty可靠地检测通道关闭/断开?

Chr*_* Ng 12 netty

特别是我对通道另一端意外死亡的情况感兴趣(例如,进程被杀死).似乎netty无法可靠地触发通道关闭/断开事件,有时它会发生,有时它不会.它也不一定会为连接重置抛出SocketException.

为了它的价值,我也尝试写入频道,但这也继续工作,没有抛出异常或解雇任何其他事件.

我在Windows上测试这个,netty 3.3.0.Final,如果这有任何区别.

Jos*_*son 1

如果通道在未发送关闭消息的情况下断开连接,则无法检测到它。通常,如果需要的话,检测断开连接的最佳方法是每隔 x 秒通过通道定期发送心跳事件。使用 IdleStateHandler,如果在心跳 + 增量之后没有收到心跳,则强制断开通道。