再加入同一个房间,一个房间里的客户

Ism*_*mic 10 socket.io socket.io-1.0

我想弄清楚如果客户一次又多次加入同一个房间会发生什么事情,为了测试并找到答案我最初想知道在同一个客户发送多个客户端以便加入后有多少客户房间房间,但维基的房间章https://github.com/Automattic/socket.io/wiki/Rooms已过时.当我尝试使用"io.sockets.clients('room')时,我收到错误"对象#没有方法'客户''.

所以我有两个问题:1.如果客户试图再次加入同一个房间会发生什么?每次他试图加入时,他会为那个房间发泄吗?2.我怎样才能找出房间里有哪些客户?

我正在使用socket.io v1.0.2

Ism*_*mic 18

我在socket.io github上得到了这个问题的答案.

  1. 根据行代码,套接字只接收一次发射.套接字仅添加到房间一次,如果再次尝试同一套接字加入房间,则此尝试将被忽略.

  2. 目前没有用于获取客户端的公共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]);
    }
    
    Run Code Online (Sandbox Code Playgroud)