Saltar al contenido

obtener cuántas personas hay en una sala de chat en socket.io

Te doy la bienvenida a proyecto online, ahora vas a encontrar la respuesta de lo que estás buscando.

Solución:

Para versiones de socket.io >= 1.0:

Tenga en cuenta que las habitaciones se convirtieron en tipos reales con un .length property en 1.4, por lo que el método 1.4.x debería ser estable a partir de ahora. Salvo cambios importantes en la API de ese tipo, por supuesto.

Para contar todos los clientes conectados a 'my_room':

1.4+:

var room = io.sockets.adapter.rooms['my_room'];
room.length;

1.3.x:

var room = io.sockets.adapter.rooms['my_room'];
Object.keys(room).length;

1.0.x a 1.2.x:

var room = io.adapter.rooms['my_room'];
Object.keys(room).length;

Esto supone que está ejecutando con el adaptador de sala predeterminado en un solo nodo (a diferencia de un clúster). Las cosas son más complicadas si estás en un clúster.


Otros ejemplos relacionados:

  • Cuente todos los clientes conectados al servidor:

    var srvSockets = io.sockets.sockets;
    Object.keys(srvSockets).length;
    
  • Cuente todos los clientes conectados al espacio de nombres '/chat':

    var nspSockets = io.of('/chat').sockets;
    Object.keys(nspSockets).length
    

Si está utilizando la versión < 1,

var clients = io.sockets.clients(nick.room); // all users from room

Para socket.io 1.4.6, lo que funcionó para mí fue especificar el espacio de nombres además de la sala. Al usar el espacio de nombres predeterminado, puede especificarlo como ['/']. Por ejemplo, para obtener el número de clientes conectados a la habitación ‘cocina’ en el espacio de nombres predeterminado (nsps), escribiría:

var io = require('socket.io')();
io.nsps['/'].adapter.rooms['kitchen'].length

Advertencia: si nadie se ha unido a una sala, aún no se ha creado, por lo tanto io.nsps['/'].adapter.rooms['kitchen'] regresará undefined. Si intentas llamar .length en la cocina indefinida, su aplicación se bloqueará.

Aquí puedes ver las comentarios y valoraciones de los usuarios

Si tienes alguna vacilación y capacidad de medrar nuestro división te sugerimos escribir una crítica y con deseo lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *