我们的场景如下:
有一个使用 Netty 编写的 TCP 服务器。
有多个客户端与服务器建立连接。
建立连接后,可以在两个方向上发送消息。
为了能够将消息传递给正确的收件人,我需要在处理程序之外维护通道。我知道ChannelGroup
这让我可以轻松实现广播服务器(向所有客户端发送一条消息)。
现在的需求是如何写入特定的通道。
我正在考虑使用ChannelGroup
特定于客户端的 id 映射(将Map<ClientId, ChannelId>
客户端 id 映射到通道 id)来丰富它。通过这种方式,有了客户端 ID,我就可以轻松获取频道并写入内容。
现在我的问题是:
ChannelHandlerContext
一般来说,写via和via有什么区别Channel
?(因为ChannelGroup
给了我Channel
not ChannelHandlerContext
)。
维持 的小组是不是一个坏主意ChannelHandlerContext
?(换句话说,我们为什么没有ChannelHandlerContextGroup
)?
还有其他建议如何做吗?
繁星coding
相关分类