根据Netty指南:http://static.netty.io/3.5/guide/#start.12
要跟踪打开的套接字,您需要修改 TimeServerHandler向全局添加新的开放频道 ChannelGroup,TimeServer.allChannels:
@Override
public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e) {
TimeServer.allChannels.add(e.getChannel());
}
我在我的业务逻辑处理程序上实现了channelOpen
。当新客户端建立连接时,我看不到它被调用。有人可以在调用channelOpen
时详细说明吗?
另外,我是否可以编写一个上游处理程序,以便在ExecutionHandler
之前插入并在适当的时间调用channelOpen
,或者有一个 在业务逻辑处理程序上实现channelOpen
?
如果可能的话,我希望能够与业务逻辑处理程序分开实现channelOpen
。
答案 0 :(得分:3)
事件按此顺序进入:
channelOpen(..),channelBound(..),channelConnected(..)
...
cannelDisconnected(..),channelUnbound(..),channelClosed(..)
因此当客户端连接时,应首先调用channelOpen(..)。