サーバーにsails.jsを設定して、サーバーが一連のクライアントにメッセージをブロードキャストするようにしようとしています。基本的に:Sails.js + socket.io:サーバーからクライアントへのメッセージの送信
- Aグループのクライアントは、AJAX要求をサーバーに送信します。
- サーバーは要求を処理し、グループBのすべてのクライアントにメッセージを送信します。
- グループBのクライアントは、ソケットを介してメッセージを受信して何かを表示します。
socket.ioの文書によると、グループBのクライアントに「ルーム」を参加させ、その特定の部屋にサーバーをブロードキャストさせることができるはずですが、クライアント側では、既存の"socket"には "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"のようなイベント名をユニークにすることはできますが、それでもすべてのクライアントに不必要なイベントを送信してしまいます。
「ルーム」を使用する必要がありますか?そしてもしそうなら、どうですか?
もっと具体的な例を教えてください。いくつかのコードが便利です。提供されたリンクでグループのものを見つけることができないようです。 –
Groupは、この例のモデルの名前です。ドキュメントでは、 'Model.subscribe'、' Model.publish'などのようにリストされています。 – sgress454