2017-10-02 4 views
1

Socket.io 2.0の部屋にあるすべてのクライアントのリストを取得するにはどうすればいいですか?socket.io room(2.0)内のクライアントのリストを取得

多くの関連する質問がありますが、バージョン2.0のものはありませんか、この質問に答えてください。最も近い答えは2.0ですが、socket.ioを使用するための要件ではないRedisを使用するときにクライアントのリストを取得する方法についてのみ説明しています。

+0

- そうではありません。 2014年以前の2.0バージョンです。受け入れられた答えはv2.0では機能しません。受け入れられた答えは 'io.sockets.adapter.rooms'です。ユーザーの特定のリストではなく、ユーザーカウントを持つルームオブジェクトのリストを返します(socket.ioが生成するソケットID)。 –

+0

@DonP次に、通常のやり方は、ソフトウェアの新しいバージョンの下にある解決策を使って他の質問に回答を投稿することです。それはそのままですが、その質問は、あなたの質問のスーパーセットです。他の質問と同じように、*すべてのバージョンではなく、2.0についてのみ質問します。受け入れられた答えが新しいバージョンで動作しないという事実は、コメントの価値があるので、他の人は知っているが、同じことを尋ねる新しい質問を正当化しない。答えが受け入れられるという事実は、それが受理された時点でOPのために働いたことを示しています。 – Makyen

+0

[socket.io nodejs serverの部屋の表示方法]の複製(https://stackoverflow.com/questions/6631501/how-to-list-rooms-on-socket-io-nodejs-server) – Makyen

答えて

2

これが見つかりました。答えは「room」ではなく「namespace」の下のSocket.ioのドキュメントに埋め込まれていました。あなたが名前空間にある場合

たとえば、「一般的な」部屋の中のすべてのクライアントを「/チャット」としたい、あなたはこれを行うことができます。LW001 @

io.of('/chat').in('general').clients((error, clients) => { 
    if (error) throw error; 

    // Returns an array of client IDs like ["Anw2LatarvGVVXEIAAAD"] 
    console.log(clients); 
}); 
+0

可能な複製デフォルトの名前空間 '/'を使用している場合はどうしますか? – Badrush

+0

私はそれを理解しました。もし誰かが次の作品に不思議に思っているなら... 'io.of( '/')。(room).clients((err、data)=> ...' – Badrush

関連する問題