Socket.ioを使用して作成された上にソケットサーバーを実行するNode.js Webサーバーがあります。基本的に、これは動作します。Socket.io:名前空間、チャネル、および共同
ここで達成したいのは、接続するクライアントがグループ化されていることです。だから、グループAを構成するクライアントと、グループBを構成する他のクライアントがあるかもしれません。特定のURL(localhost:3000/A
またはlocalhost:3000/B
)をアドレス指定して、グループに属するグループを選択します。
Socket.ioでは、グループAのすべてのクライアントまたはグループBのすべてのクライアントまたはすべてのクライアントに、グループを見ずにメッセージを送信します。
それだ基本的に部屋とおしゃべりを持って、あなたは特定の部屋内のすべてのクライアントのいずれかのメッセージを持っている、または任意のクライアントのために、どんな部屋に彼がでていないような。
設計するための最良の方法は何ですかSocket.ioを使用しているそのようなシステム?
これまでの名前空間を使ってみましたが、これは基本的にグループAとグループBを作成するために機能しますが、どの部屋にいてもすべてのクライアントにメッセージを送信できなくなります。これを行う方法を知っている。
これはどのようにモデル化すればよいですか?私が探すべき正しい用語は何ですか?
UPDATE:
- 使用の名前空間は、私は長い間かかわらず、名前空間の、みんなに送信することはできませんよ場合:私は名前空間または部屋を使用することができ@sdedelbrockの答えによります。これは、
io.sockets
がio.of('')
へのショートカットであるためです。もちろん、これはもはや名前空間と一致しません。 - これは私が部屋を使うべきであることを意味しますが、部屋と名前空間の意味の違いは何か分かりません。
簡潔にする:同じ(?)アイデアには2つの概念があるのはなぜですか?
私はこれを試しました。 2番目のアプローチ(名前空間)を使用する場合、名前空間にかかわらず、誰にでも長い時間を送ることができません。これは、 'io.sockets'が' io.of( '') 'へのショートカットであるためです。これは、もはや名前空間にはそれ以上一致しません。つまり、私は部屋を使うべきです。 とにかく、部屋と名前空間の意味の違いは何ですか?同じ(?)アイデアのために2つの概念があるのはなぜですか? –
私はそれが別々に管理できると信じています。[Socket.io Namespaces](http://gordonkoo.com/blog/2012/02/28/under-thehood -of-socket-io-namespaces /) – Sdedelbrock
この記事は間違いなく良い読書ですが、残念ながら私の質問には答えません。私はいつでも名前空間を使うべきか、部屋を使うべきか、そしてそれらの意味の違いは何かを理解することができません。さらに、ネームスペースに関係なく、どのようにすべてのクライアントにメッセージを送信するのですか? –