2016-05-25 6 views
0

io.emit()を使用して接続されているすべてのクライアントにイベントを送信する代わりに、1つのクライアントにイベントを呼び出すだけです。socket.ioを使用して接続されたすべてのクライアントではなく、特定のクライアントにイベントを呼び出す方法はありますか?

+0

[細かいマニュアル](http://socket.io/docs/)に 'socket.emit(...) 'がありますか? – robertklep

+0

これは、すべてのクライアントにイベントを送信します。 – iii

+2

[Expressサンプル](http://socket.io/docs/#using-with-express-3/4)を実行すると、 'io.emit()'が発行されます。すべてのクライアント、 'socket.emit()'は1つのクライアントに送信します。 – robertklep

答えて

0

は、あなたがして、使用に送信する特定のクライアントのためにsocketオブジェクトを取得する必要があります。

someSocket.emit(...) 

にただ1つのソケットを。特定の1人のユーザーに適切なソケットを取得する必要があります。あなたは、アプリの仕組みについて私たちがどのように推奨するかを知るためには何も公開していません。各ソケットにはidがあります。これはルックアップすることができます。また、接続や切断時に独自のデータ構造で各ソケットの独自のインデックスを保持できます。

要約すると:io.emit()は接続中のすべてのユーザーに送信されます。 someSocket.emit()はそのソケットに送信します。


FYIでは、「特定のクライアントにイベントを呼び出す」ことはありません。 「特定のクライアントにメッセージを送信する」ことができます。特定の着信メッセージが到着したときに、クライアントコードが登録されて通知を受けることができます。

+0

@iii - これはあなたの質問に答えましたか? – jfriend00

関連する問題