サーバーが一連のクライアントにメッセージをブロードキャストするように、sails.js を使用してシステムをセットアップしようとしています。基本的:
- グループ A のクライアントは、AJAX 要求をサーバーに送信します。
- サーバーはリクエストを処理し、ソケットを介してグループ B のすべてのクライアントにメッセージを送信します。
- グループ B のクライアントは、ソケットを介してメッセージを受信し、何かを表示します。
socket.io のドキュメントによると、グループ B のクライアントを「部屋」に参加させ、サーバーをその特定の部屋にブロードキャストさせることができるはずですが、クライアント側では、既存の「ソケット」はそうではありません。メソッド「socket.join('room')」があります。だから、私はすべてのクライアントに一意のイベントを送信しようとしました:
socket.on("connect", function(){
console.log("Client Connected");
});
socket.on("my_event", function(data){
console.log("my_event received");
});
これは、サーバー側で「sails.io.sockets.emit("my_event", {...})」を実行することで正常に機能しますが、これはすべてのクライアントにイベントを送信していませんか? グループを指定する ID を持つ "my_event_000" のようなイベント名を一意にすることもできますが、それでもすべてのクライアントに不必要にイベントを送信することになります。
「部屋」を使用する必要がありますか?もしそうなら、どのように?