シンプルなライブチャットをDjangoで実行されているWebアプリケーションに組み込んでいますが、混乱していることの1つは、ユーザー間のメッセージをどのように保存するかです。
チャットは複数のユーザーをサポートし、チャットの「セッション」は「ホスト」である1人のユーザーに接続されたユーザーで構成されます。このアプリケーションは一種のオンラインドキュメントコラボレーションであるため、ユーザーXはドキュメントを持っており、ユーザーYとZはユーザーXに接続してドキュメントについて話し、それが1つのチャットセッションになります。
ユーザーYが5分間切断した後、再度サインインしてユーザーXに再接続した場合、ユーザーYは、不在中にユーザーXとZの間で共有されたメッセージを受信しないはずです。
ユーザーX、Y、およびZがユーザーXのドキュメントに関するチャットセッションを行うことができる場合、ユーザーXとYは、ユーザーZのドキュメントに関する同時の個別のディスカッションに接続できます。
これをどのように処理すればよいですか?各メッセージをデータベースに保存する必要がありますか?各メッセージには所有者ユーザーとターゲットユーザー(ホスト)があり、個別のテーブルを使用してユーザーをメッセージ(どのメッセージがどのユーザーに表示されるか)に接続します。
または、各セッションをHTMLファイルとしてサーバーに保存する必要がありますか?どのメッセージが追加されますか?
問題は、クライアント間で直接メッセージを送信することはできないということです。それらはPOSTリクエストでサーバーに送信する必要があり、その後、各クライアントはGETリクエストでメッセージを定期的にチェックする必要があります。複数のクライアントが存在する可能性があるため、クライアントがメッセージをフェッチした後に各メッセージをクリアすることはできません。これをどのように設定すればよいですか?助言がありますか?