我正在考虑将我的 Java NIO 实现转移到JBoss Netty,因为它提供的模型比我实现的要干净得多。该实现使用专有协议通过 TCP 管理许多客户端到组件的连接。
我在 Netty 中看不到的实现的一个方面是能够设置任意超时,其中:
- 等待从组件中读取一些数据。我知道 Netty 有一个
ReadTimeoutHandler
,但是当组件在状态机中移动时,它可以很容易地更改/关闭超时值吗? - 等待时间过去,以便我可以重新连接到组件(以便在断开连接后给组件时间重新启动)。这与通信完全无关,是一个简单的超时,但是我希望以与其他与通信相关的超时相同的方式将超时“事件/异常”呈现给处理程序类。
这个超时机制可以用Netty来完成吗?
结论:鉴于我需要实现一个超时机制,该机制将在它自己的线程中运行,我毕竟不会转换为使用 Netty。