サイトの 1 人のユーザーが、私の Django サイトで別のユーザーにチャット リクエストできるようにしたいと考えています。依頼先に、「チャットしますか?」というリアルタイム ボックスを取得してもらいたいです。
次のクライアント ポーリング アプローチはどのように聞こえますか。
user1 が users2 のニックネームをクリックすると、いくつかの /message/requests への POST リクエストが生成され、データベースに CHAT_REQUEST タイプのメッセージが作成されます。一方、user2 のブラウザの Javascript は、サーバーにメッセージの更新を繰り返しクエリします。タイプ CHAT_REQUEST のメッセージを受信すると、ポップアップが開きます...
このアプローチの問題は、データベースへのアクセスにあるようです。
クライアントが 10 秒ごとにポーリングし、100 人のユーザーがブラウザ ウィンドウを開いたままにしておくと、1 秒あたり 10 データベース リクエストになります。
これらのメッセージをデータベースではなく、Django RAM またはセッション情報に保存する方がよいでしょうか? それとも、このデータベース テーブルは PostgreSQL で RAM にキャッシュされ、取得は高速になりますか?