我试图弄清楚如果客户发出多次加入同一个房间会发生什么情况,为了测试并找到答案,我最初想找出在相同的客户发送更多然后发出一个用于加入的房间之后有多少个客户房间房间,但Wiki https://github.com/Automattic/socket.io/wiki/Rooms中的“房间”一章已过时。当我尝试使用“ io.sockets.clients('room')”时,出现错误“对象#没有方法'clients'”。
所以我有两个问题:1.如果客户尝试多次进入同一房间怎么办?每次尝试加入时,他都会在那个房间散发出吗?2.如何找出房间中的哪些客户?
我正在使用socket.io v1.0.2
我在socket.io github上得到了这个问题的答案。
按照这一行代码,套接字将仅接收一次发射。该套接字仅添加到一个房间一次,并且如果再次尝试将同一套接字加入该房间,则该尝试将被忽略。
当前没有任何公共API可以吸引客户,并且#1428中正在进行一些讨论。如果出于某种原因确实需要获取它们,则可以假设不使用redis适配器,则可以从适配器中获取实际的客户端:
socket.join('test room');
var clients = io.sockets.adapter.rooms['test room'];
console.log(clients);
for (var clientId in clients) {
console.log(io.sockets.connected[clientId]);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句