我正在将一些TCP服务器/客户端代码移植到Netty。
一个问题是,服务器将处理来自许多客户端的长期连接。我目前不需要并且很可能不需要在批处理操作等中对所有客户端进行广播等操作......但我只需要这些通道的存储位置以及允许我有选择地向下发送通知的机制给客户提供一些客户ID。
我的问题是ChannelGroup是一个可接受的机制来保存这些频道吗?当我第一次获得连接时,我会将通道的ID与客户端ID存储在查找映射中,这样每当我需要通知特定客户端时,我将查找需要写入的通道ID,然后从ChannelGroup获取该通道ID并且只向该频道发送消息。
这种方法有什么问题吗?
谢谢!
答案 0 :(得分:0)
不,这似乎是合理的,虽然我只使用客户端ID存储Channel,并且可能将一个监听器附加到Channel#getCloseFuture()以维护我的映射。但是,ChannelGroup仍然有用,特别是将“关联”通道作为一个单元关闭。