2
是否可以检查用户是否订阅了socket.io中的某个频道?检查用户是否订阅了socket.io中的某个频道
假设我有一个名为news
的频道。用户在客户端订阅了该频道。但该网站的数据是动态的,因此该网站的新闻标签可能无法随时打开。如果新闻标签没有在客户端打开,我不想为新闻标签创建内容。我知道新闻标签没有打开,当用户没有订阅news
频道。
有没有办法检查?
是否可以检查用户是否订阅了socket.io中的某个频道?检查用户是否订阅了socket.io中的某个频道
假设我有一个名为news
的频道。用户在客户端订阅了该频道。但该网站的数据是动态的,因此该网站的新闻标签可能无法随时打开。如果新闻标签没有在客户端打开,我不想为新闻标签创建内容。我知道新闻标签没有打开,当用户没有订阅news
频道。
有没有办法检查?
您可以使用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);
});
非常感谢!当我来测试你的解决方案时,我会回来接受你的答案。 – Amberlamps
但是现在在这个socket 1.2.0时代呢? –