Estoy tratando de limitar la cantidad de usuarios que puedo tener en una sala, pero necesito obtener la cantidad de usuarios que hay actualmente en la sala.
Así es como se ve mi server.js
socket.on("join-room", (roomId, userId) => { var clients = io.sockets.adapter.rooms[roomId]; var numClients = typeof clients !== "undefined" ? clients.length : 0; console.log(numClients); if (numClients === undefined || numClients < 3) { console.log('Joined room ' + roomId); socket.join(roomId); socket.to(roomId).emit("user-connected", userId); io.to(roomId).emit('user-connected', userId); } else { console.log('room_full'); // socket.broadcast.to(userId).emit('room_full', 'for your eyes only'); } });Este es el error que recibo en mis registros.
... console.log(io.sockets.adapter.rooms[roomId].length) 2022-04-01T02:08:14.237151+00:00 app[web.1]: ^ 2022-04-01T02:08:14.237151+00:00 app[web.1]: 2022-04-01T02:08:14.237152+00:00 app[web.1]: TypeError: Cannot read properties of undefined (reading 'length') ...Tengo socketio@4.4.1
este codigo te puede ayudar
var activeUsers = new Set(); var clients = io.sockets.adapter.rooms[roomId]; activeUsers.add(clients); console.log("active Users", activeUsers);Producción
active Users Set(1) { '62039f336226f0fdc7e90915' }