据我们所知,套接字的创建是唯一的id。当我的用户创建空间并邀请用户加入时。我不能在房间里保存和存储加入的用户。当用户加入房间时,他喜欢服务器存储此加入,并在disconnet之后再连接自动连接到最新加入的房间。我可以存储套接字并自动加入用户吗?
我无法找到有关此能力的任何解决方案。因为每个连接都更改了套接字。
有任何简单的解决方案吗?提前致谢
答案 0 :(得分:1)
您需要为每个用户创建某种userID,并且通常将其存储在cookie中。然后,如果您想要持久房间,您必须创建自己的服务器端数据结构,以跟踪您希望每个用户所在的房间。并且,每次从房间添加或删除用户时,您都可以修改您自己的数据结构,以便正确跟踪该状态。
然后,当用户连接时,您可以从cookie中获取他们的用户ID并查看您的数据结构以查看您应该将该连接放入哪些房间。然后,为了检查内存管理,您必须以某种方式使用户过期经过一段时间的不活动后,从你的数据结构,所以他们不会永远留在那里。 (可能是你上次访问时的时间戳,然后是每小时你遍历数据结构并删除一段时间没有访问过的用户)。
如果您希望此信息在服务器重新启动后仍然存在,则必须将其永久保存到磁盘,然后在启动时重新加载该信息。如果您已经将数据库用作应用程序的一部分,则可以将信息存储在数据库中,否则,您可以将内部数据结构尽可能多地写入磁盘,可能是JSON,然后在当你的服务器启动时。