1

根据 Netty 指南:http ://static.netty.io/3.5/guide/#start.12

要跟踪打开的套接字,您需要修改 TimeServerHandler 以将新的打开 Channel 添加到全局 ChannelGroup,TimeServer.allChannels:

  @Override
  public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) {
        TimeServer.allChannels.add(e.getChannel());
  }

channelOpen在我的业务逻辑处理程序上实现。当新客户端建立连接时,我没有看到它被调用。有人能详细说一下什么时候channelOpen打电话吗?

另外,我可以编写一个上游处理程序以插入到并期望适当的时间被调用,还是必须在业务逻辑处理程序上实现?ExecutionHandlerchannelOpenchannelOpen

如果可能的话,我希望能够channelOpen与业务逻辑处理程序分开实现。

4

1 回答 1

3

事件按以下顺序出现:

通道打开(..),通道绑定(..),通道连接(..)

...

cannelDisconnected(..)、channelUnbound(..)、channelClosed(..)

因此,当客户端连接时,应该首先调用 channelOpen(..)。

于 2012-07-10T11:27:47.983 回答