【问题标题】:Checking whether user subscribed to certain channel in socket.io检查用户是否订阅了 socket.io 中的某个频道
【发布时间】:2012-06-04 07:37:47
【问题描述】:

socket.io中是否可以查看用户是否订阅了某个频道?

假设我有一个名为news 的频道。用户在客户端订阅了该频道。但是该站点的数据是动态的,因此该站点的新闻选项卡可能随时都不会打开。如果新闻选项卡未在客户端打开,我不想为新闻选项卡创建内容。我知道当用户没有订阅news频道时,新闻标签没有打开。

有没有办法检查?

【问题讨论】:

    标签: javascript node.js socket.io


    【解决方案1】:

    您可以使用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);
    });
    

    【讨论】:

    • 非常感谢!当我过来测试你的解决方案时,我会回来接受你的答案。
    • 但是现在在这个套接字 1.2.0 时代呢?
    猜你喜欢
    • 2013-09-29
    • 2013-05-01
    • 2022-01-03
    • 2014-05-15
    • 2021-02-01
    • 2019-01-18
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多