我正在尝试取消订阅套接字并让它离开他所在的房间。我知道他的socket.id,为了让你更好理解,当房间的创造者离开时,一个特定的插座/所有套接字应该离开。 TY!
答案 0 :(得分:7)
要离开房间,请使用:
socket.leave(roomName);
如果您的套接字只有socket.id
,那么您可以使用以下内容获取与该ID对应的套接字:
let socket = io.sockets.connected[id];
socket.leave(roomName);
如果你想让每个人都离开特定的房间,你可以这样做:
function clearRoom(room, namespace = '/') {
let roomObj = io.nsps[namespace].adapter.rooms[room];
if (roomObj) {
// now kick everyone out of this room
Object.keys(roomObj.sockets).forEach(function(id) {
io.sockets.connected[id].leave(room);
})
}
}
所有这些代码只在服务器上运行,因为房间只是服务器端的概念。