繁体   English   中英

Node.js将连接的套接字保存在房间中

[英]Nodejs save connected sockets on rooms

据我们所知,套接字的创建是唯一的id。当我的用户创建房间并邀请用户加入其中时。 我无法在房间中保存和存储已加入的用户。当用户在房间中加入时,他喜欢服务器存储此联接,并且在disconnet上并再次连接后自动将其联接到最新加入的房间。如何存储套接字并自动加入用户?

我找不到有关此功能的任何解决方案。 因为套接字在每个连接上都发生了变化。

有没有简单的解决方案? 提前致谢

您需要为每个用户创建某种用户ID,通常将其存储在Cookie中。 然后,如果要使用永久性会议室,则必须创建自己的服务器端数据结构,以跟踪每个用户要进入的会议室。此外,每次在会议室中添加或删除用户时,都可以修改您自己的数据结构,以便正确跟踪该状态。

然后,当用户连接时,您可以从cookie中获取其用户ID,然后查看您的数据结构以查看应将该连接放入哪些房间。然后,为了控制内存管理,您必须以某种方式使用户过期在一段时间不活动之后保持结构,这样他们就不会永远呆在那里。 (可能是您上次访问时的时间戳记,然后每小时查看一次数据结构并删除一段时间内未访问的用户)。

如果希望此信息在服务器重新启动后也能幸免,则必须将其永久保存到磁盘,然后在启动时重新加载该信息。 如果您已经将数据库用作应用程序的一部分,则可以将信息存储在数据库中;如果没有,则可以每隔很长时间将内部数据结构写出到磁盘上(可能是JSON),然后将其读入服务器启动时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM