在Netty 3中,我可以使用ChannelUpstreamHandler处理打开/关闭事件,例如
pipeline.addLast("channelGroupHandler", new SimpleChannelUpstreamHandler() {
public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) {
...
}
public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) {
...
}
});
但在Netty 4中它不起作用。那么,我现在如何处理这个事件呢?
答案 0 :(得分:6)
如果您选中New and noteworthy in 4.0,则可以看到:
在3.x中,当创建新的连接Channel
时,至少触发了三个ChannelStateEvents
:channelOpen
,channelBound
和{{1} }。关闭channelConnected
时,至少还需要3个:Channel
,channelDisconnected
和channelUnbound
。
在4.x中,channelClosed
,channelOpen
和channelBound
已合并到channelConnected
。否则,channelActive
,channelDisconnected
和channelUnbound
已合并到channelClosed
。
你应该使用新的API。
答案 1 :(得分:2)
看起来在Netty 4中使用的新类是ChannelInboundHandlerAdapter
pipeline.addLast("channelGroupHandler", new ChannelInboundHandlerAdapter() {
public void channelActive(ChannelHandlerContext ctx) {
...
}
public void channelInactive(ChannelHandlerContext ctx) {
...
}
});