私はリアルタイムチャットのためにnodejs/socket.ioを調査しています。私はルームを実装するためのアドバイスが必要です。socket.ioルームまたは名前空間?
名前空間を使用するか、部屋の機能を使用してチャッター同士を完全に分離する方が良いでしょうか?
部屋と名前空間の実際の技術的な違いは何ですか?
リソースの使用に違いはありますか?
私はリアルタイムチャットのためにnodejs/socket.ioを調査しています。私はルームを実装するためのアドバイスが必要です。socket.ioルームまたは名前空間?
名前空間を使用するか、部屋の機能を使用してチャッター同士を完全に分離する方が良いでしょうか?
部屋と名前空間の実際の技術的な違いは何ですか?
リソースの使用に違いはありますか?
これは名前空間と部屋は中を持っているものである共通(socket.io v0.9.8 - 物事は変化している場合がありますので、完全な書き直しを関与そのv1.0のを注意してください):
io.connect(urlAndNsp)
を使用してクライアントによって接続されている:それは、違いをフィルタリングすることは、単にクライアント側ではありません
概念を名前(部屋または名前空間)と混同しないように、区画を使用して概念を参照し、実装の他の2つの名前はコンセプトのです。あなた
後者の例は、おそらく別々に開発された(たとえばサードパーティ製の)別々のモジュールが同じアプリケーションで使用されていて、単一のネットワーク接続。
これは実際にはベンチマークされていませんが、メッセージを分割してグループ化するためにプロジェクト内に単純なコンパートメントが必要な場合はどちらかが問題ありません。
あなたの質問に答えるかどうかはわかりませんが、この回答に至るまでの研究は少なくとも私がより明確になるのを助けました。
あなたがしたいことによって異なります。
の違いは実装が難しいことです。 各ページをリロードしてルームに参加する方法を作成する必要があります。あなたは自分のJavaScriptクライアントとクライアントでvar example = io.connect('http://localhost/example');
を記述する必要が名前空間を持つ
は、自動的に名前空間に追加されます。利用の
例:
これは古い質問ですが、トピックに関するいくつかの調査を行った後、私は受け入れられた答えが重要な点ではっきりしていないことがわかります。 Guillermo Rauch自身(see link)によると: 実行中のアプリケーションで名前空間を動的に作成することは理論的には可能ですが、主にアプリケーションのあらかじめ定義された別のセクションとして使用します。一方、ユーザー/接続のグループに対応するために、即時に随時コンパートメントを作成する必要がある場合は、ルームを使用することをお勧めします。
socket.ioバージョン> = 1.0以降に変更されたメジャーはありますか? – Xeroxoid
最後のバージョンの変更点については、http://socket.io/docs/rooms-and-namespaces/を参照してください。この回答は部屋のことを理解するのに便利です http://stackoverflow.com/questions/24041220/sending-message -i-specific-id-in-socket-io-1-0/24224146#24224146 –
名前空間は私のWebアプリケーションの特定の領域で、その領域のクライアントのグループと言えるでしょうか? – Onaiggac