今日、私は分散システム用のRESTインターフェースを設計しています。これはクライアント/サーバーアーキテクチャですが、2つのメッセージ交換パターンがあります。
Webで検索すると、サーバーとクライアントにRESTサーバーを実装することが1つの解決策であることがわかりました。 REST-HTTP Simple Protocol Webサービスアーキテクチャをパブリッシュ/サブスクライブしますか?
もう1つの方法は、blocking-RESTを実装することです。これにより、クライアントは特定のポートでリッスンする必要がなくなります。 ブロッキングの使用RESTパブリッシュ/サブスクライブの実装要求
このようなインターフェースを実装するために、どのオプションを検討しますか。ありがとう!
Web Sockets Webクライアントをライブで更新するサービスのチャネルを提供できます。 http long polling のような他のテクニックがあります。クライアントは(あなたが言及したように)「ブロッキング」リクエストを行い、サービスはタイムアウト(たとえば50秒)未満の期間リクエストを保持します。データがある場合に応答を書き込みます。 Webクライアントはすぐに別の要求を発行します。このループは、メッセージをサーバーからクライアントに「送信」できるが、クライアント(ファイアウォール、プロキシなど)から開始される連続チャネルを作成します。
socket.io 、 signalR などのライブラリがあり、このロジックをラップし、WebSocketからロングポーリングにフォールバックして、詳細を抽象化します。
理解するために、サンプルのWebソケットと 長いポーリングの例 を作成することをお勧めしますが、それを正しく行うには、上記のようなライブラリに依存します。