可以使用 ChannelGroup 类来维护一组 Channel,然后使用 ChannelGroup 的 find() 方法来查找具有指定 ID 的 Channel。
首先,你需要在服务端创建一个 ChannelGroup,然后在每个 Channel 被创建时将其添加到 ChannelGroup 中。这可以在 ChannelInitializer 的 initChannel() 方法中完成。
public class Server {
private final ChannelGroup channelGroup = new DefaultChannelGroup(ImmediateEventExecutor.INSTANCE);
public void start() {
ServerBootstrap serverBootstrap = new ServerBootstrap();
serverBootstrap
.group(new NioEventLoopGroup())
.channel(NioServerSocketChannel.class)
.childHandler(new ChannelInitializer<SocketChannel>() {
@Override
protected void initChannel(SocketChannel ch) throws Exception {
channelGroup.add(ch);
// 其他初始化操作
}
});
serverBootstrap.bind(new InetSocketAddress(8080));
}
}