2016-04-04 10 views
0

私はここで特定のクライアントに送信する方法に関するすべての回答を見てきましたが、動作するものが見つかりませんでした。Socket.io 1.4.5部屋内の個々のクライアントにどのようにメッセージを送信しますか?

私は2つのクライアントを持つ部屋を持つ名前空間を持っています。私は、その部屋のクライアント1人に固有の情報を送信したいというプロセスがあります。私はsocketIDを持っています。だから私は試してみる:

namespace.to(socketID).emit('messageID',data); 

私は文字通り何も見ない。クライアント側にリスナーを設定しています。

namespace.on('messageID', function(data) { 
    console.log('messageID seen'); 
    console.log(data); 
}); 

これは決して発生しません。私も試してみました:

namespace.to(socketID).emit('messageID',data); 

namespace.sockets.sockets[socketID].emit('messageID',data); 

およびそれらの

namespace.clients[socketId].emit('messageID',data); 

なしに動作します。

したがって、socket.ioバージョン1.4.5のネームスペースのルーム内の特定のクライアントにメッセージを送信する正しい方法は何ですか?

助けていただけたら幸いです!私の質問に対する私のソリューションは、別の部屋を作成することでしたし、それだけでその部屋に個々のクライアントを持ってい

答えて

0

Z。それは完全に機能します。

+0

クライアントが接続するときに、そのクライアントのソケットへの参照を保存し、後で 'socket.emit()'を介してそれを使用する必要があるときに使用することもできます。このようにクライアントだけのために別の部屋を作る必要はありません。 – Josh1billion

+0

どうすればいいですか? – Zanderfax

+0

コメントを入力するのは難しいですが、 'io.on( 'connection'、function(socket){/ * here * /}' 'に' socket'オブジェクトへの参照を保存します接続されているすべてのクライアントの)。その時点から、あなたが保存した参照を介して好きな場所でそのオブジェクトの 'emit()'関数を呼び出すことができます。 – Josh1billion

関連する問題