1

私の質問は、django を利用した Web サイトでのユーザー間のリアルタイムのコラボレーションについてです。

実際には、私が知る必要があるのは、そのようなシステムを実装できるかどうかです: 1) Web サイトを使用しているすべてのユーザーが user1、user2、... userN であるとします 2) ユーザーの 1 人が何か興味深いことをするたびに、サーバーに通知しますアプリケーションのステータスとブラウザのUIを更新するために他のユーザー 3) 前のポイントを拡張して、ユーザーがトリガーしたイベントだけでなく、タイムアウトや「5分ごと」などのより一般的なイベントもカバーできます。想像。

ブラウザーからサーバーへ、およびサーバーからブラウザーへの通信は ajax (または Web ソケットや SSE などの新しいもの) を介して実行できることは知っていますが、特定のイベントが発生したときにユーザーに通知する方法はわかりません。頭に浮かぶ唯一の(悪い)アイデアは、アプリケーションデータをデータベースに保存し、ユーザーが何かをしたときにそれを更新し、同時にすべてのユーザーがデータベースからアプリケーションステータスをポーリングすることです。しかし、データベースとポーリング システムの使用を回避する方法があるかどうか、つまり次のような方法があるかどうかはわかります。

イベント e がトリガーされたとき => すべてのブラウザーに「e トリガー」を送信

前もって感謝します

別のユーザー「ジョン」が何かをしたときに、ユーザー「フランク」に応答を送信する方法を知りたいです。問題は、サーバーがブラウザに何かを送信する方法ではなく、データベースを使用せずに john のアクティビティ (つまり、ボタンをクリックする、ページを変更する、フォームに入力する) を Frank の UI にリンクする方法です。たとえば、ユーザーが何かを入力したときに、入力したテキストを他のすべてのユーザーにプッシュする必要がある単純なチャット ページについて考えてみましょう。フランクのブラウザへ」. memcache ソリューションは良さそうですが、別のユーザーの接続をリンクするために使用できる pub-sub やイベント システムのようなものがあるかどうか知りたいです。

4

1 に答える 1

0

Ajax 呼び出しが変更をチェックするときにデータベースにヒットしないように、キャッシュ (つまり memcache) を実装します。こだわりたい場合は、キーベースのキャッシュの有効期限を調べて、キャッシュの無効化を処理してください。

于 2013-08-20T23:22:24.740 に答える