2011-06-28 11 views
2

私はRESTful Webサービスとそれを使用するリッチクライアントアプリケーションを持っています。 私はこのサービスと同時に働く複数のユーザーを実装する必要があります。そのため、誰かが何かを変更した場合、できるだけ早く他のユーザーのクライアントに反映されます。リソース変更時のRESTfulな通知

私はWeb Socketを使って他のクライアントに通知しましたが、

1)それは良いですか? 2)長いポーリングを伴わないオプションはありますか?

ありがとう、 Ido。

答えて

0

RESTやJSONではあまり働いていませんが、ポーリングを避けるためには、購読/通知メカニズムを実装できると思います。
ユーザクライアントは、イベント、すなわちクライアント側に配置された小さなウェブサービスを「リスンする」エンドポイントを公開する。
起動時のユーザクライアントは、変更の通知を期待するポート(または完全なURL)を送信する通知用に登録します。 変更が完了すると、Webサービスで実行されているディスパッチャは、登録されたすべてのクライアントにイベント(変更に関する情報をカプセル化)を介して通知を送信できます。

+0

このソリューションはローカルネットワーク内では問題ありませんが、インターネットでは機能しません。ほとんどの企業では、外部のマシンが内部のマシンと通信することはできません。 私は誰かがWebSocketですでに遊んでいることを期待しています.WebSocketは、クライアントが呼び出しを開始するためインターネットでも動作します。 –

+0

あなたのWebサービスは既に公開ネットワークに公開されていますか?外部クライアントがWebサービスにアクセスできるので、Webサービス(クライアントとして機能する)からクライアント(クライアントとして機能する)私があなたが気がついているトポロジーを誤解している場合を除き、 – Cratylus

+0

クライアントがファイアウォールにアクセスしたときにファイアウォールがそれをアウトバウンド接続と見なすので、通常は許可されます。サーバ(クライアントとして動作する)がクライアント(サーバとして動作)に接続しようとすると、クライアントのファイアウォールはそれを通常は許可されていない着信接続と見なします。 –

1

私はWebSocketを使用して、クライアントにリソースの変更について通知しています。 私はそれを試して、それがどのように動作するかを見てください。

+0

私はこのようにしました。美しく動作します。なぜクライアントがサーバーでもあり、ウェブソケットはこのために設計されているのですか? – Mordechai

関連する問題