我想创建一个类似于DefaultChannelGroup的类,但有一个区别,就是所写的消息属于一个连接,并且与之关联的通道不会将消息写回到该连接。
想想聊天应用程序,我们应该在其中写入除写消息的用户所属渠道以外的所有其他渠道。
查看DefaultChannelGroup的实现,看来我可以添加一个名为write的新方法,该方法期望给定的通道和消息,并且将迭代非服务器通道并跳过等于给定通道的通道。
最佳答案
您可以扩展DefaultChannelGroup以按照概述进行操作,但是通道组已经是迭代器,并且通道组已经存在。如果您已经有一个频道,则可以直接对其进行写操作(即,您不需要从ChannelGroup中获取它),或者,如果出于某种原因,您确实想从频道组中获取它,则可以呼叫ChannelGroup.find(channel.getId())。
我想如果您这样做是出于缩小到单个渠道的目的,那是化妆品的问题。我不是在摇摇晃晃...。个人喜好!如果它对您更好,那就去吧。
更有趣的情况是对DefautChannelGroup的真正有用的扩展,它将为各个通道分配一组编码为位掩码的属性。然后,您可以执行某些操作,例如告诉BitMaskChannelGroup使用提供的bit-mask参数将此消息写入所有频道,这可能是居住在新泽西州的所有21岁以上聊天室用户或所有制造商是思科的路由设备。