我正在使用Netty框架并实现了客户端和服务器。我正在建立多达1000的连接。我想在多个地方配置超时值。其中一些我能够弄明白。所以,这是我的网络实施的网络行为:
1.许多异步连接从客户端启动超时(使用ChannelOption.CONNECT_TIMEOUT_MILLIS配置)。
2.能够连接的客户端连接使用channelActive发送HTTP请求,并使用channelRead0接收响应。
问题 - 我想在发送请求和接收特定频道的数据之间设置超时值
我阅读了netty文档并提出了两个解决方案:
1. https://netty.io/4.0/api/io/netty/channel/ChannelConfig.html#setConnectTimeoutMillis-int-
2. https://netty.io/4.0/api/io/netty/handler/timeout/ReadTimeoutHandler.html
我很困惑选择哪个选项以及哪一个更好或者还有其他选项。
答案 0 :(得分:1)
您需要设置多个限制(最有可能)。如您所知,您可能希望通过setConnectTimeoutMillis
设置连接超时,但也有ChannelDuplexHandler
,以确保您在预期时间内收到对请求的响应。您可能还想查看IdleStateHandler
,如果ChannelPipeline
空闲时间过长,将允许通过Channel
触发事件。