gpt4 book ai didi

java - Netty - 如何获得所有客户 channel ?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:31:16 25 4
gpt4 key购买 nike

我使用的是 netty 示例代码 - telnet 数据包,现在代码可以建立服务器和客户端使用 telnet 进行聊天,但客户端只能与服务器对话。我正在重写它以使客户端可以与所有客户端通话,因此我需要保留一个 channel 列表,以便当客户端联系服务器时,服务器可以将消息发送给所有客户端。谁能告诉我如何获得所有客户 channel ?(示例代码为 enter link description here )

最佳答案

对于 Netty 4.0.X

在主类中,您需要声明 ChannelGroup 对象:

 final ChannelGroup channels = 
new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);

当一个新的客户端连接时(你应该将构造函数中的 channel 对象传递给你的处理程序类):

@Override
public void channelActive(ChannelHandlerContext ctx) throws Exception {
channels.add(ctx.channel());
}

要获取所有客户端,只需迭代 channel 对象:

for (Channel ch : channels) {
//do something with ch object
}

希望对您有所帮助。

关于java - Netty - 如何获得所有客户 channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10372801/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com