`
stephen830
  • 浏览: 2966924 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

netty的IdleStateHandler

阅读更多

netty的IdleStateHandler

 

网络连接中,处理Idle事件是很常见的,一般情况下,客户端与服务端在指定时间内没有任何读写请求,就会认为连接 是idle的。此时,客户端需要向服务端发送ping消息,来维持服务端与客户端的链接。那么怎么判断客户端在指定时间里没有任何读写请求呢?netty 中为我们提供一个特别好用的IdleStateHandler来干这个苦差事!请看下面代码:

ch.pipeline().addLast("idleStateHandler", new IdleStateHandler(readerIdleTimeSeconds, writerIdleTimeSeconds,allIdleTimeSeconds));

 这个处理器,它的作用就是用来检测客户端的读取超时的,该类的第一个参数是指定读操作空闲秒数(为0表示禁用),第二个参数是指定写 操作的空闲秒数(为0表示禁用),第三个参数是指定读写空闲秒数(为0表示禁用),当有操作操作超出指定空闲秒数时,便会触发UserEventTriggered事件。所以我们只需要在 自己的handler中截获该事件,然后发起相应的操作即可。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics