0

DefaultChannelGroup のように機能するクラスを作成したいと思いますが、書き込まれるメッセージが接続に属し、それに関連付けられたチャネルにはメッセージが書き戻されないという 1 つの違いがあります。

メッセージを書いたユーザーに属するチャネル以外のすべてのチャネルに書き込む必要があるチャット アプリケーションを考えてみてください。

DefaultChannelGroup の実装を見ると、特定のチャネルとメッセージを期待し、非サーバー チャネルを繰り返し、特定のチャネルに等しいチャネルをスキップする write という名前の新しいメソッドを追加できるようです。

4

1 に答える 1

2

概要を説明したように DefaultChannelGroup を拡張することもできますが、チャネル グループは既にイテレータであり、チャネルのセットです。すでにチャンネルを持っている場合は、それに直接書き込むことができます (つまり、ChannelGroup から取得する必要はありません)。または、何らかの理由でチャネル グループから取得したい場合は、ChannelGroup.find(channel.getId())を呼び出します。

単一のチャネルに絞り込む目的でこれを行っている場合は、見た目の問題だと思います。私はそれをパンしていません....個人的な好みです!それがあなたにとってより良いものであるなら、それを選んでください。

DefautChannelGroup の本当に便利な拡張となる、より興味深いシナリオは、ビットマスクとしてエンコードされた属性のグループを個々のチャネルに割り当てることです。次に、 BitMaskChannelGroup に、指定されたビットマスク引数を使用してこのメ​​ッセージをすべてのチャネルに書き込むように指示するようなことができる場合があります。製造元が Cisco であるルーティング デバイス

于 2013-04-09T16:08:56.127 に答える