Socket.io保存动态房间并保持客户端连接Node JS

时间:2016-07-27 19:28:42

标签: node.js socket.io

我对socket.io相当新 我在这里浏览了他们的文档页面和一些帖子,但我仍然坚持我的方法。我正在计划一个测验应用程序,管理员可以为每个主题创建动态房间,用户可以加入。管理员将发布问题,用户在PDA锁定答案选项卡之前得到10秒的答案。管理员稍后将通过管理员CP发布答案。

现在我的问题 1.我们可以从管理面板创建动态房间并将房间名称存储在数据库中,以便客户稍后可以加入同一个房间吗? 2.如何保持客户端连接,直到稍后发布答案为止?没有客户端断开连接。 //像whatsapp组这样的东西 3.即使客户端断开连接,我可以使用存储在DB中的房间元数据加入客户端吗? 4.如果有10个客户回答我的问题,服务器是否可以解析他们的数据并将其ID存储在数据库中?

感谢您的任何帮助。我对如何解决这个问题一无所知。我遵循了许多教程,但未能达到我的需要。对于冗长的帖子感到抱歉,但任何线索肯定会帮助我 TIA

1 个答案:

答案 0 :(得分:3)

  
      
  1. 我们可以从管理面板创建动态房间并将房间名称存储在数据库中,以便客户可以在以后加入同一个房间吗?
  2.   

是的,你可以。

  
      
  1. 如何保持客户端连接,直到稍后发布答案为止?没有客户端断开连接。 //某事   像whatsapp group
  2.   

只要原始页面在浏览器中处于活动状态,Socket.io就会自动保持连接处于活动状态。如果连接丢失,它将重新连接。如果用户转到另一个没有socket.io代码的页面,那么将没有连接。当客户端通过socket.io连接时,在给定页面中建立连接。如果您希望只要用户在您的站点上有连接就可以通过socket.io连接所有页面。

  
      
  1. 即使客户端断开连接,我可以使用存储在数据库中的房间元数据加入客户端吗?
  2.   

如果客户不再与您的网站相关联,那么您无需做任何事情,因为您无法与该用户进行通信。连接是客户驱动的事情。客户端必须与您的服务器建立连接。当客户端重新连接时,您可以在数据库中查找其状态以重新连接到某些房间,或查找在断开连接时可能错过的任何消息并将其发送到新重新连接的客户端。但是,这取决于您存储该信息并知道如何查询它以获取正确的信息以发送新连接的客户端。

  
      
  1. 如果有10个客户回答我的问题,服务器是否可以解析他们的数据并将其ID存储在数据库中?
  2.   

是的,您可以编写代码来执行此操作。