2

新しいWebアプリのパイロット中に、サーバーからのフィードバックの要求がありました。その間、サーバーは、ドキュメントの新しい共同編集者やログアウトなどの証明書タスクを実行しています。

そこで、SSE(Sever-Sent Events)を実装しました。これは正常に機能し、アプリメッセージ「 GrowlStyle」で適切なフィードバックと優れたメッセージを取得できます。

私の質問はこれです:私は本当にプッシュのためにSSEを使用するべきですか、それとも古き良きハンギングゲットを使用するべきですか?

ITの観点からは、SSEは問題ないように見えますが、特定のタスク中にアプリがrertyフィールドを設定するretry: 500ため、サーバーへの呼び出し回数が増加します。

プッシュ通知(Hanging Get)のようにFacebookを使用した場合、チェックせずに必要な場合にのみフィードバックを受け取ります。

-

無関係な詳細

*現時点では、Webソケットは使用しません。私はこれを実装しましたが、アプリはこれを頻繁に必要としません。

PushService()という名前の抽象クラスに実装するインターフェイスがあるので、いつでもSSEまたはポーリングを使用するのは難しくありません。したがって、いつでもSSEServiceとPollServiceを切り替えることができます*

4

1 に答える 1

2

まあ、事実は次のとおりです。

  • SSEとLongPolling( "Hanging Get")は同じことを実行します。つまり、サーバーの準備ができたら、サーバーからクライアントにデータをプッシュします。

  • ロングポーリングを実装するには、ハックが必要です。SSEはそうではありません。

  • ロングポーリングは、最新のすべてのWebブラウザで機能します。SSEは、最新のほとんどのブラウザーの新しいバージョンで機能しますが、Internet Explorerのどのバージョンでも機能しません(この記事の執筆時点ではIE9まで)。

これらの事実を考えると、これら2つの間の決定は明らかであるように思われます。Internet Explorerまたは他のブラウザーの古いバージョン(たとえば、ほとんどの公開アプリ)をサポートする必要がある場合は、ロングポーリングを使用してください。これらのブラウザー(会社の管理インターフェースなどの特定の内部アプリなど)をサポートする必要がないことがわかっている場合は、SSEを使用してください。

あなたのケースは新しいウェブアプリのパイロットであるため、できるだけ多くのブラウザをサポートしたいと思う可能性が高いので、ロングポーリングを使用してください。また、質問の中で、ロングポーリングによってサーバーの負荷が軽減されるとおっしゃっていましたが、これは追加のボーナスです。

于 2012-04-23T22:15:58.777 に答える