seperti io.to("chat").clear() , semua socket di room "chat" akan keluar
Kamar @wendux dibuat dan dihapus secara otomatis. Itu berarti ketika ruangan itu kosong, tidak ada lagi klien yang tersisa di dalamnya, itu akan dihapus.
Anda dapat melakukan ini untuk menghapus semua klien dari ruang:
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
Untuk melengkapi jawaban @rrllalloshi , dalam konfigurasi multi-server Anda harus menggunakan metode removeLeave
dari adaptor:
io.of('/').in('chat').clients((error, socketIds) => {
if (error) throw error;
socketIds.forEach(socketId => io.of('/').adapter.remoteLeave(socketId, 'chat'));
});
Kamar @wendux dibuat dan dihapus secara otomatis. Itu berarti ketika ruangan itu kosong, tidak ada lagi klien yang tersisa di dalamnya, itu akan dihapus.
Anda dapat melakukan ini untuk menghapus semua klien dari ruang: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
itu tidak berfungsi di socket.io 2.2.0
Mengapa tidak ada panggilan sederhana untuk menghapus semua soket dari sebuah ruangan? Ini adalah kasus penggunaan yang sangat umum
saya memilih untuk menambahkan. room.kick() fungsi di mana Anda dapat meneruskan id tertentu, array, atau 'ALL" untuk menghapus semua orang
Komentar yang paling membantu
saya memilih untuk menambahkan. room.kick() fungsi di mana Anda dapat meneruskan id tertentu, array, atau 'ALL" untuk menghapus semua orang