0

我正在将一些 TCP 服务器/客户端代码移植到 Netty。

一个问题,服务器将处理来自许多客户端的长期连接。我目前不需要也很可能不需要在批处理操作中向所有客户端广播等事情......但我只需要一个存储这些频道的地方和一个允许我有选择地向下发送通知的机制给给定一些客户 ID 的客户。

我的问题是 ChannelGroup 是一种可接受的机制来保存这些频道吗?当我第一次获得连接时,我会将频道 ID 和客户端 ID 存储在查找映射中,这样每当我需要通知特定客户端时,我都会查找我需要写入的频道 ID,然后从 ChannelGroup 中获取该频道并且只向该频道发送消息。

这种方法有什么问题吗?

谢谢!

4

1 回答 1

0

不,这似乎是合理的,尽管我只会将 Channel 与客户端 ID 一起存储,并可能将侦听器附加到 Channel#getCloseFuture() 以维护我的映射。但是,ChannelGroup 仍然很有用,尤其是对于将“关联”通道作为一个单元来关闭时。

于 2012-10-02T22:58:38.920 回答