3

Netty 3では、ChannelUpstreamHandlerを使用してオープン/クローズイベントを処理できます。

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

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

しかし、Netty4では機能しません。では、このイベントを今どのように処理できますか?

4

2 に答える 2

6

4.0で新しく注目に値するものをチェックすると、次のことがわかります。

  • 3.xでは、新しい接続が作成されると、、、、およびのChannel少なくとも3つChannelStateEventsがトリガーchannelOpenされます。aが閉じている場合、少なくとも3つ以上:、、、および。channelBoundchannelConnectedChannelchannelDisconnectedchannelUnboundchannelClosed

  • 4.xでは、、、channelOpenおよびchannelBoundchannelConnectedにマージされましたchannelActive。それ以外の場合、、、channelDisconnectedおよびchannelUnboundchannelClosedにマージされていchannelInactiveます。

新しいAPIを使用する必要があります。それだけです。

于 2014-07-29T16:18:29.977 に答える
2

Netty4で使用する新しいクラスはChannelInboundHandlerAdapter

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

  public void channelInactive(ChannelHandlerContext ctx) {
    ...
  }
});
于 2016-08-04T19:19:48.557 に答える