簡體   English   中英

socket.io發射后留出空間

[英]socket.io leave room after emitting to it

我想知道何時完成向房間的發射過程以立即離開房間。 發射后馬上離開房間可以嗎? 我嘗試在房間發射中使用回調,但是遇到服務器錯誤,所以我猜不可能。 既然我想象這是一個異步過程,那么在發出信號后立即離開房間可能不安全(大規模)。 有什么想法嗎?

 //join all friends to a room Socket.join(SOME_ROOM); //send data to this room io.to(SOME_ROOM).emit('SOME_EVENT', SOME_DATA); //cb function fails if I add one //leave room Socket.leave(SOME_ROOM); //is it safe? 

調用.emit()之后立即離開房間是安全的。 該空間僅用於確定要發送給哪個套接字,並在io.to()調用中同步完成,以便在.emit()調用返回時全部確定。

即使將數據實際發送到那些套接字id是異步完成的(事實如此),套接字是否仍在房間中也不再重要。 該會議室僅用於最初選擇要發送到的套接字,而在實際的發送過程中並未使用。

請記住,雖然一個房間聽起來像是一個功能強大的概念,但實際上它背后只是一個插座列表。

因此,您應該能夠做到這一點:

//join all friends to a room
Socket.join(SOME_ROOM);

//send data to this room
io.to(SOME_ROOM).emit('SOME_EVENT', SOME_DATA);

//leave room
Socket.leave(SOME_ROOM); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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