我正在将我的"普通NIO"(=我直接使用JDK中的软件包)TCP服务器迁移到Netty 4.
我有线程向所有客户端发送消息,如健康检查数据包,聊天消息广播,直接聊天消息到单个客户端,...使用SocketChannels
我保留在某处的集合.
我如何在Netty中做到这一点?简单地在一个Netty处理程序和需要发送消息的线程之间共享一个ChannelGroup是明智的吗?频道看起来像这样:
public class ChannelCollectorHandler extends ChannelInboundMessageHandlerAdapter<String> {
private static final ChannelGroup channels = new DefaultChannelGroup();
public SecureChatServerHandler(ChannelGroup channels) {
this.channels = channels;
}
@Override
public void channelActive(final ChannelHandlerContext ctx) throws Exception {
channels.add(ctx.channel());
}
...
}
Run Code Online (Sandbox Code Playgroud)
在我将简单地做的所有线程中:
channels.write(...);
Run Code Online (Sandbox Code Playgroud)
那会有用吗?
归档时间: |
|
查看次数: |
3371 次 |
最近记录: |