我正在考虑将我的Java NIO实现移到JBoss Netty,因为它提供了比我实现的更清晰的模型。该实现使用专有协议管理通过TCP的组件的许多客户端连接。
我在Netty中看不到的实现的一个方面是能够设置任意超时,其中:
ReadTimeoutHandler
但是当组件在状态机中移动时,组件是否可以轻松更改/关闭超时值?可以使用Netty完成此超时机制吗?
结论:鉴于我需要实现一个超时机制,它可以在自己的线程中运行,毕竟我不打算转换为使用Netty。
答案 0 :(得分:3)
见ChannelConfig。方法setConnectTimeoutMillis(int)以毫秒为单位设置超时。您可以通过调用Bootstrap通过setOption(String, Object)实例调用此方法。 name
将是“connectTimeoutMillis”,value
将是所需的超时(以毫秒为单位)。
以下代码段显示了如何将连接超时设置为5000毫秒(5秒)。
ClientBootstrap bootstrap... // bootstrap instance
bootstrap.setOption("connectTimeoutMillis", 5000);