Netty 4中的IdleStateHandler?

时间:2013-01-01 02:08:50

标签: netty

我已将它添加到我的管道中并且LoggingHandler正在捕获其事件但是由于事件系统从Netty 3更改为4,如何处理这些事件,因为IdleStateAwareUpstreamHandler不再存在?

LoggingHandler: 2012年12月31日下午5:46:19 io.netty.handler.logging.LoggingHandler 信息:[id:0xfef88037,/ 127.0.0.1:63531 => /127.0.0.1:7633] USER_EVENT:WRITER_IDLE(0,30001ms)

谢谢!

1 个答案:

答案 0 :(得分:3)

首先,确保您的管道有IdleStateHandler,并且想要通过IdleStateEvent通知的处理程序放在IdleStateHandler之后。

ChannelStateHandlerChannelInboundHandler有一个名为userEventTriggered()的事件处理程序方法。您可以像下面这样实现该方法:

@Override
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
    if (evt instanceof IdleStateEvent) {
        ...
    }
}