繁体   English   中英

断开客户端与 socket.io id

[英]disconnect client from socket.io id

我可以将特定玩家连接到特定房间,例如:

socket.join('sampleroom');

并且文档说“您可以使用 leave 方法离开房间”,例如:

socket.leave('sampleroom');

但我只想让任何客户端使用 io 对象而不是套接字离开。 我需要类似的东西:

io.sockets(specificSocketID).leave('sampleroom');

有没有办法只使用带有 io 对象的 socket id 离开房间?

您可以将传入的套接字保存到您自己的对象中。

var sockets = {};
io.on('connection',function(socket){
    sockets[specificSocketID] = socket;
    io.on('disconnect',function(){
        delete sockets[specificSocketID];
    });
});
//then you can easily call a specific socket with its id
sockets[specificSocketID].join('sampleRoom');
sockets[specificSocketID].leave('sampleRoom');

正如@tresdin 提到的,我们可以存储套接字 id,但是 io 对象也被存储,所以实际上我们不需要它。 我们可以使用特定的套接字 ID,例如

io.sockets.sockets[specificSocketID].leave('sampleroom');

对于版本 > 3.0

io.sockets.sockets.get(specificSocketID).leave("sampleroom");

对于版本 < 3.0

io.sockets.sockets[specificSocketID].leave("sampleroom");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM