Socket.io 使特定插座离开房间

Socket.io 使特定插座离开房间,socket.io,Socket.io,我想退订一个插座,让它离开他住的房间。我知道他的socket.id,为了让您更好地理解,当房间的创建者离开时,一个特定的插座/所有插座都应该离开。泰 要离开房间,请使用以下命令: socket.leave(roomName); 如果您只有套接字的socket.id,则可以通过以下方式获得与该id对应的套接字: let socket = io.sockets.connected[id]; socket.leave(roomName); 如果您想让每个人都离开某个房间,可以这样做: functi

我想退订一个插座,让它离开他住的房间。我知道他的socket.id,为了让您更好地理解,当房间的创建者离开时,一个特定的插座/所有插座都应该离开。泰

要离开房间,请使用以下命令:

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);
        })
    }
}

所有这些代码都只在服务器上运行,因为房间只是服务器端的概念。

Ty,我要把这个答案加入书签,这正是我想要的;)hey@RazvanAlex在
io.sockets.connected[id]中,离开(房间)
.leave(room)我遇到一个错误
TypeError:无法读取未定义的属性'leave'
你能告诉我发生了什么吗?我的套接字版本是2.2.0