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