我正在将一个简单的实时聊天构建到在 Django 上运行的 Web 应用程序中,但我感到困惑的一件事是我应该如何在用户之间存储消息。
聊天将支持多个用户,并且聊天“会话”由连接到作为“主机”的一个用户的用户组成。该应用程序是一种在线文档协作的东西,因此用户 X 有一个文档,用户 Y 和 Z 将连接到用户 X 以讨论该文档,这将是一个聊天会话。
如果用户 Y 断开连接 5 分钟,然后重新登录并重新连接到用户 X,那么在他离开时,他应该不会收到用户 X 和 Z 之间共享的任何消息。
如果用户 X、Y 和 Z 可以就用户 X 的文档进行聊天会话,则用户 X 和 Y 可以同时连接到关于用户 Z 文档的单独讨论。
我该如何处理?我应该将每条消息都保存在数据库中吗?每条消息都有一个所有者用户和一个目标用户(主机),并且将使用一个单独的表将用户与消息连接起来(哪些消息对哪些用户可见)。
或者我应该将每个会话作为 HTML 文件存储在服务器上,附加到哪些消息?
问题是,我不能直接在客户端之间发送消息。它们必须在 POST 请求中发送到服务器,然后每个客户端必须定期检查 GET 请求中的消息。除了我不能在客户端获取每条消息后清除它,因为可能有多个客户端。我应该如何设置?有什么建议么?