我可以将特定的播放器连接到特定的房间,例如:

socket.join('sampleroom');


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

socket.leave('sampleroom');


但是我只希望任何客户端使用io对象而不是套接字退出。我需要类似的东西:

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


有什么方法可以只使用带有io对象的套接字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');

07-24 18:05