1

背景:ユーザーが調査に回答を追加し、これらの回答を他のユーザーにプッシュできる調査アプリを構築しようとしています (たとえば、質問が「お気に入りのプログラミング言語は何ですか?」であり、Haskell を含めなかった場合、ユーザーは回答として「Haskell」を追加でき、それが全員のブラウザに表示されます)。これを達成するためにロングポーリングを使用する予定です。

私の概念的アプローチ:私が落ち着いたアプローチは、オブザーバー パターンのようなものを設定することです (または、オブザーバー パターンとまったく同じかもしれません。私はパターンを設計するのは初めてです)。

手順は次のようになります。ブラウザは /app/longpoll にリクエストを送信します。これにより、1. タイムスタンプを使用して変更が発生したかどうかが確認され、発生した場合はそれらの変更が返されるか、または 2. 自身が登録されるビューがスピンアップされます。イベントデリゲータを使用してメッセージを待ちます。次に、ブラウザーが /app/UpdateSurvey にリクエストを送信すると、ビューが起動され、1. 調査が更新され、2. 調査が変更されたことをイベント委任者に通知されます。

私の質問:これがこの問題を解決するための健全なアプローチであるとすれば、どのように実装すればよいですか? イベントの委任者として機能するには、スタンディング プロセスが必要なようですが、これがどのようなものかはよくわかりません。このプロセスを登録するにはどうすればよいですか? 登録するにはどうすればよいですか?そもそもこのプロセスを存在させるにはどうすればよいですか? 回答が投票に追加されたときに、このプロセスがイベントの委任でビジー状態になっているとどうなりますか?

これは長い回答を求めていることを認識しており、おそらく他の人によって解決されているため、記事/書籍の推奨も奨励されています.

4

1 に答える 1

1

これはあなたが求めたものとは別の解決策ですが、post_saveウェブソケットを使用してページを開いているユーザー (購読しているクライアント) にプッシュする新しい質問が追加されたときにシグナルを使用するのはどうですか?

編集:ああ、IE - Websockets の代わりにJuggernautを使用 (ブラウザが Websocket をサポートしている場合は引き続き使用します)、IE6 (私は思う) および 7 (私は知っています) で動作します

于 2012-12-20T15:54:23.253 に答える