我想知道如何在socket.io中创建房间并将其存储在会话中

时间:2018-06-29 07:03:51

标签: socket.io

我想使多个聊天室成为动态聊天室,并希望使它们成为这样,如果我们刷新页面,它将聊天室和用户保留在聊天室中,我是socket.io的新手,正在寻找解决方案。

1 个答案:

答案 0 :(得分:0)

这是一个相当广泛的问题,因此实际上不可能非常具体地给出答案。为给定用户保留一个或多个“房间”的一般步骤如下:

  1. 在服务器上安装会话管理器。 express-session很受欢迎,然后您可以选择要与之一起使用的数据存储(有数十种选择)。这将为连接到服务器的每个用户提供一个半永久会话对象。
  2. 当用户首次连接到您的服务器时,将创建一个会话对象和匹配的会话cookie,使您的服务器在下次连接时可以标识该浏览器。
  3. 您可以在该会话中将rooms属性初始化为一个空数组,或者初始化为Set对象(这使得以后的步骤查找起来更简单)。
  4. 将该用户放入特定的聊天室后,您可以将该会议室名称添加到session.rooms数组或Set中。
  5. 当用户离开特定的聊天室时,您可以从session.rooms数组或Set中删除该聊天室名称。
  6. 当用户重新连接时,您会在他们的会话中查找并自动将他们加入到该会话认为应连接到的任何房间。
  7. 您可能需要某种超时过程,以便如果用户在一段时间内保持断开连接状态,则可以删除其会话或至少清除其房间列表。