2016-04-01 148 views
1

我可以将特定播放机连接到特定的房间,如:断开客户

socket.join('sampleroom'); 

和文件说,“你可以用假方法留有余地”,如:

socket.leave('sampleroom'); 

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

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

有没有什么办法让客户端使用套接字ID与io对象的房间?

回答

0

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

io.sockets.sockets[specificSocketID].leave('sampleroom'); 
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');