如何使用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)
方法。只需通过Channel
将channels
实例添加到您的channels.add(chc.channel());
您可能必须公开您的ChannelGroup
,以便可以在任何地方使用。祝好运。