como io.to ("chat"). clear (), todos los conectores de la sala "chat" saldrán
Las salas de
Puede hacer esto para eliminar a todos los clientes de una sala:
io.of('/').in('chat').clients((error, socketIds) => {
if (error) throw error;
socketIds.forEach(socketId => io.sockets.sockets[socketId].leave('chat'));
});
https://socket.io/docs/server-api/#namespace -clients-callback
Para completar la respuesta de @rllalloshi , en una configuración de múltiples servidores, debe usar el método removeLeave
del adaptador:
io.of('/').in('chat').clients((error, socketIds) => {
if (error) throw error;
socketIds.forEach(socketId => io.of('/').adapter.remoteLeave(socketId, 'chat'));
});
Las salas de
Puede hacer esto para eliminar a todos los clientes de una sala:io.of('/').in('chat').clients((error, socketIds) => { if (error) throw error; socketIds.forEach(socketId => io.sockets.sockets[socketId].leave('chat')); });
https://socket.io/docs/server-api/#namespace -clients-callback
no funcionó en socket.io 2.2.0
¿Por qué no hay una simple llamada para eliminar todos los enchufes de una habitación? Es un caso de uso muy común
voto para agregar. función room.kick () donde puede pasar una identificación específica, una matriz o 'TODOS' para eliminar a todos
Comentario más útil
voto para agregar. función room.kick () donde puede pasar una identificación específica, una matriz o 'TODOS' para eliminar a todos