繁体   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