Netty 4处理频道事件

时间:2012-12-27 09:38:39

标签: java events netty

在Netty 3中,我可以使用ChannelUpstreamHandler处理打开/关闭事件,例如

pipeline.addLast("channelGroupHandler", new SimpleChannelUpstreamHandler() {
  public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) {
    ...
  }

  public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) {
    ...
  }
});

但在Netty 4中它不起作用。那么,我现在如何处理这个事件呢?

2 个答案:

答案 0 :(得分:6)

如果您选中New and noteworthy in 4.0,则可以看到:

  • 在3.x中,当创建新的连接Channel时,至少触发了三个ChannelStateEventschannelOpenchannelBound和{{1} }。关闭channelConnected时,至少还需要3个:ChannelchannelDisconnectedchannelUnbound

  • 在4.x中,channelClosedchannelOpenchannelBound已合并到channelConnected。否则,channelActivechannelDisconnectedchannelUnbound已合并到channelClosed

你应该使用新的API。

答案 1 :(得分:2)

看起来在Netty 4中使用的新类是ChannelInboundHandlerAdapter

pipeline.addLast("channelGroupHandler", new ChannelInboundHandlerAdapter() {
  public void channelActive(ChannelHandlerContext ctx) {
    ...
  }

  public void channelInactive(ChannelHandlerContext ctx) {
    ...
  }
});