背景:ユーザーが調査に回答を追加し、これらの回答を他のユーザーにプッシュできる調査アプリを構築しようとしています (たとえば、質問が「お気に入りのプログラミング言語は何ですか?」であり、Haskell を含めなかった場合、ユーザーは回答として「Haskell」を追加でき、それが全員のブラウザに表示されます)。これを達成するためにロングポーリングを使用する予定です。
私の概念的アプローチ:私が落ち着いたアプローチは、オブザーバー パターンのようなものを設定することです (または、オブザーバー パターンとまったく同じかもしれません。私はパターンを設計するのは初めてです)。
手順は次のようになります。ブラウザは /app/longpoll にリクエストを送信します。これにより、1. タイムスタンプを使用して変更が発生したかどうかが確認され、発生した場合はそれらの変更が返されるか、または 2. 自身が登録されるビューがスピンアップされます。イベントデリゲータを使用してメッセージを待ちます。次に、ブラウザーが /app/UpdateSurvey にリクエストを送信すると、ビューが起動され、1. 調査が更新され、2. 調査が変更されたことをイベント委任者に通知されます。
私の質問:これがこの問題を解決するための健全なアプローチであるとすれば、どのように実装すればよいですか? イベントの委任者として機能するには、スタンディング プロセスが必要なようですが、これがどのようなものかはよくわかりません。このプロセスを登録するにはどうすればよいですか? 登録するにはどうすればよいですか?そもそもこのプロセスを存在させるにはどうすればよいですか? 回答が投票に追加されたときに、このプロセスがイベントの委任でビジー状態になっているとどうなりますか?
これは長い回答を求めていることを認識しており、おそらく他の人によって解決されているため、記事/書籍の推奨も奨励されています.