私は2つの真に異なるオプションがあると信じています(両方が機能するかどうかはわかりません。私はこれが初めてです):
socket.io に処理させたい 2 つのモジュール (モジュール A とモジュール B) があるとします。それが 2 つの異なるチャットルームであるとします。動的な数のチャットルームは必要ありません (それによって選択肢が制限され、私の質問は多用途性に関するものではないため)。チャットルームの静的な数だとしましょう。
オプション1:
socket.emit('registerA', {});
クライアント セッションの開始時に、クライアントは、またはそのようなイベントを送信することにより、チャットルーム A またはチャットルーム B のメンバーであることを識別します。次に、サーバー側ではio.sockets.on('registerA', handleA);
、handleA は、受信した個々のソケットにリスナーを直接追加する関数になります。これにより、同じ名前の複数のイベントが可能になります (たとえば、メソッド 'postチャットルーム B の場合と同じ方法でチャットルーム A に送信できますが、登録方法によってリスナーは異なります)。
オプション 2:
すべてのソケットに適用される個別のイベント ハンドラーを用意します。これは、ソケットが自分自身を登録する必要がまったくないことを意味します。「投稿」のようなアクションは、チャットルームによって「Apost」または「Bpost」になり、別々に処理できます。
効率の点で、どちらのオプションが優れていますか?