0

我想创建一个工作起来很像 Def​​aultChannelGroup 的类,但有一个区别是正在写入的消息属于一个连接,并且与其关联的通道不会将消息写回它。

想想聊天应用程序,我们应该写入所有其他通道,而不是属于编写消息的用户的通道。

查看 DefaultChannelGroup 的实现,似乎我可以添加一个名为 write 的新方法,该方法需要给定的通道和消息,并将迭代非服务器通道并跳过等于给定通道的通道。

4

1 回答 1

2

您可以扩展 DefaultChannelGroup 以按照您的概述进行操作,但通道组已经是一个迭代器和一组通道。如果你已经有一个频道,你可以直接写入它(即你不需要从 ChannelGroup 中获取它),或者,如果出于某种原因,你真的想从频道组中获取它,你可以调用ChannelGroup.find(channel.getId())

我想如果你这样做是为了缩小到单一渠道的目的,那是化妆品的问题。我不是在平移它....个人喜好!如果它对你更好,那就去吧。

更有趣的场景是对 DefautChannelGroup 进行真正有用的扩展,即为各个通道分配一组编码为位掩码的属性。然后你可能可以做一些事情,比如告诉 BitMaskChannelGroup 使用提供的位掩码参数将此消息写入所有频道,这可能是居住在新泽西州的所有 21 岁以上的聊天室用户的编码,或者所有制造商是 Cisco 的路由设备

于 2013-04-09T16:08:56.127 回答