3

ユーザーが socket.io で特定のチャンネルを購読しているかどうかを確認することはできますか?

というチャンネルがあるとしましょうnews。ユーザーがクライアント側でそのチャネルにサブスクライブしました。ただし、サイトのデータは動的であるため、サイトのニュース タブが常に開いているとは限りません。ニュース タブがクライアント側で開かれていない場合、ニュース タブのコンテンツを作成したくありません。ユーザーがチャンネルに登録していない場合、ニュース タブが開いていないことはわかっていますnews

それを確認する方法はありますか?

4

1 に答える 1

3

を使用するio.sockets.clients('news')と、すべてのクライアントのソケット ID が返されます。クライアントを知っている場合はsocket.id、電話することもできますio.sockets.manager.roomClients[socket.id](ルーム名には先頭文字「/」が付きます)。

これは、管理クライアントが部屋ごとのクライアント数を取得するために呼び出すために使用するサンプルです。

socket.on('countClientsInRoom', function (room, callback) {
    var count = io.sockets.clients(room).length;
    callback(count);
});
于 2012-06-19T19:33:51.143 に答える