断开客户端与socket.io id

时间:2016-04-01 13:15:14

标签: javascript websocket socket.io

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

socket.join('sampleroom');

并且文档说'你可以使用离开方法留下空间',如:

socket.leave('sampleroom');

但我只想让任何客户端使用io对象而不是socket。我需要这样的东西:

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

有没有办法让客户端只使用带有io对象的套接字ID?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

对于版本 > 3.0

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

对于版本 <3.0

io.sockets.sockets[specificSocketID].leave("sampleroom");
相关问题