Socket.ioを使用して作成されたソケットサーバーを上で実行するNode.jsWebサーバーがあります。基本的に、これは機能します。
私が今達成したいのは、接続するクライアントがグループにクラスター化されていることです。したがって、グループAを構成するクライアントと、グループBを構成する他のクライアントが存在する可能性があります。特定のURLをアドレス指定することにより、所属するグループを選択する必要がありlocalhost:3000/A
ますlocalhost:3000/B
。
Socket.ioで、グループを見ずに、グループAのすべてのクライアント、グループBのすべてのクライアント、またはすべてのクライアントにメッセージを送信したいと思います。
これは基本的に部屋とチャットするようなもので、特定の部屋にいるすべてのクライアント、またはどの部屋にいるかに関係なく、すべてのクライアントにメッセージを送信できます。
Socket.ioを使用してそのようなシステムを設計するための最良の方法は何ですか?
私はこれまで名前空間を使用しようとしてきましたが、これは基本的にグループAとBを作成するために機能しますが、クライアントがどの部屋にいても、すべてのクライアントにメッセージを送信できなくなります。少なくとも方法がわかりません。これ。
これをどのようにモデル化する必要がありますか?私が探すべき正しい用語は何ですか?
更新:@sdedelbrockの回答によると、名前空間または部屋を使用できます。
- 名前空間を使用する場合、名前空間に関係なく、私は長い間すべての人に送信することができません。これは、
io.sockets
がへのショートカットio.of('')
であり、もちろん名前空間と一致しなくなったためです。 - これは、部屋を使用する必要があることを意味しますが、部屋と名前空間のセマンティックの違いは何でしょうか。
簡単に言うと、同じ(?)アイデアに2つの概念があるのはなぜですか?