Socket.io保存dynamic客房,并保持客户端连接节点JS

我相当新socket.io。
我通过他们的文档页面和一些post在这里,但我坚持我的方法。 我正在计划一个测验应用程序,pipe理员可以为每个主题创builddynamic空间,用户可以join。 pipe理员将发布问题,用户在PDAlocking答案选项卡之前得到10秒的回答。 pipe理员稍后将通过pipe理员CP发布答案。

现在我的问题。
1.我们可以从pipe理面板创builddynamic的房间,并将房间名称存储在数据库中,以便客户以后可以join同一个房间?
2.我如何保持客户连接,直到答案发布后的某个时间? 没有客户端断开连接。 //类似于whatsapp组
3.即使客户断开连接,我是否可以join存储在数据库中的房间元数据的客户端?
4.如果10个客户端回答我的问题,服务器可以parsing他们的数据并将他们的ID存储在数据库中吗?

欣赏任何帮助。 我不知道如何去做这件事。 我跟着很多教程,但没有达到我所需要的。 对不起,冗长的职位,但任何线索肯定会帮助我
TIA

  1. 我们可以从pipe理面板创builddynamic房间,并将房间名称存储在数据库中,以便客户以后可以join同一个房间?

是的你可以。

  1. 我如何保持客户端连接,直到答案发布后的某个时间? 没有客户端断开连接。 //类似于whatsapp组

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

  1. 即使客户断开连接,我是否可以join存储在数据库中的房间元数据的客户端?

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

  1. 如果10个客户端回答我的问题,服务器可以parsing他们的数据并将他们的ID存储在数据库中吗?

是的,你可以编写代码来做到这一点。