簡體   English   中英

斷開客戶端與 socket.io id

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM