【发布时间】:2011-07-04 10:56:55
【问题描述】:
我正在考虑将我的 Java NIO 实现转移到 JBoss Netty,因为它提供的模型比我实现的更简洁。该实现使用专有协议通过 TCP 管理许多客户端到组件的连接。
我在 Netty 中看不到的实现的一个方面是能够设置任意超时,其中:
- 等待从组件中读取一些数据。我知道 Netty 有一个
ReadTimeoutHandler,但是当组件在状态机中移动时,它可以轻松地更改/关闭超时值吗? - 等待时间过去,以便我可以重新连接到组件(让组件在断开连接后有时间重新启动)。这与通信完全无关,只是一个简单的超时,但是我希望以与其他与通信相关的超时相同的方式将超时“事件/异常”呈现给处理程序类。
这个超时机制可以用Netty来实现吗?
结论:鉴于我需要实现一个超时机制,该机制将在它自己的线程中运行,我毕竟不会转换为使用 Netty。
【问题讨论】:
-
你正在实现什么样的通道,服务器还是客户端?
-
你的意思是“handle”,而不是“handler”...
-
@someguy:不,我使用 Handler 一词来表示“代表”我正在与之通信的组件的类。 @secmask:它们是与多个组件的客户端连接。
-
是的,它通常被称为“手柄”。另一方面,“处理程序”是“处理程序中接收到的输入的异步回调子例程”(维基百科)。
-
@someguy:句柄是资源标识符,但不是那样。我是在一般意义上使用它,所以不用担心。