1. ホーム
  2. node.js

[解決済み] Socket.IO - 接続されているソケット/クライアントのリストを取得するにはどうすればよいですか?

2022-04-13 18:39:10

質問

現在接続されているすべてのソケット/クライアントのリストを取得しようとしています。

io.sockets は残念ながら配列を返しません。

私は配列を使って自分のリストを保持することができることを知っているが、これは2つの理由のために最適な解決策ではないと思う。

  1. 冗長性。Socket.IOはすでにこのリストのコピーを保持しています。

  2. Socket.IOでは、クライアントに任意のフィールド値を設定するメソッド(例. socket.set('nickname', 'superman') そのため、もし私自身のリストを管理するのであれば、これらの変更に追従する必要があります。

ヘルプは?

解決方法は?

Socket.IO 0.7では、以下のように clients メソッドを実行すると、接続されているすべてのソケットの配列が返されます。

名前空間がない場合のAPI。

var clients = io.sockets.clients();
var clients = io.sockets.clients('room'); // all users from room `room`

ネームスペースの場合

var clients = io.of('/chat').clients();
var clients = io.of('/chat').clients('room'); // all users from room `room`

将来の誰かの役に立つことを願って

<ブロッククオート

NOTE このソリューション オンリー は1.0より前のバージョンで動作します。


UPDATED 2020年03月06日

1.x 以降はこちらをご参照ください。 socket.ioのチャットルームに何人いるのか取得する