[英]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.