如何使用Netty从服务器向客户端发送消息?
我知道你可以做到

  for (Channel c : channels1) {
    c.writeAndFlush("TEXT \r\n");
  }


但是它只能在ChatServerHandler类内部使用。有没有一种方法可以将消息发送到客户端,或者如何制作可以调用的方法,例如

sendMessageToServer("MESSAGE");

void sendMessageToServer(String message) {
final ChannelGroup channels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
      for (Channel c : channels) {
        c.writeAndFlush("TEXT \r\n");
      }
}


?如果我使用ChatServerHandler中的频道

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


我得到的通道大小为0。

最佳答案

final ChannelGroup channels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
这将构造一个没有内容的新ChannelGroup

您应该有一个扩展SimpleChannelInboundHandler<?>的类。
连接某些内容时,将调用channelActive(ChannelHandlerContext chc)方法。只需通过Channelchannels实例添加到您的channels.add(chc.channel());
您可能必须公开您的ChannelGroup,以便可以在任何地方使用。祝好运。

10-06 13:27