我在客户端/服务器通信中使用Netty的IdleStateHandler来发送心跳(服务器到客户端)并检测客户端上的超时。当大型消息的传输花费的时间超过配置的读取超时时,这种情况很好。 我的情况是这些大消息只发生在客户端的启动(基线),在正常操作期间消息很小,因此我不愿意增加客户端的整体读取超时。
有没有办法防止IdleStateHandler在实际接收数据时触发空闲状态事件?或者我做错了什么?
谢谢, 托马斯
答案 0 :(得分:1)
将IdleStateHandler
作为第一个处理程序添加到'ChannelPipeline'解决了我的问题。这可确保尽可能频繁地更新最后接收数据的时间戳。