如何使用 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 中的 channel
final ChannelGroup channels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
我得到的 channel 大小为 0。
最佳答案
final ChannelGroup channels = new DefaultChannelGroup(GlobalEventExecutor.INSTANCE);
这构建了一个新的 ChannelGroup
里面什么也没有。
你应该有一个类扩展 SimpleChannelInboundHandler<?>
.
channelActive(ChannelHandlerContext chc)
连接某物时调用方法。只需添加 Channel
实例到您的channels
通过channels.add(chc.channel());
您可能必须将您的 ChannelGroup
公开,以便可以在任何地方访问。祝你好运。
关于java - Netty IO发送消息给客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28384007/