4

Java ベースのモバイル Web アプリのバックエンドを作成しています。スケーラビリティと使いやすさに関して、WebSocket とコメットのようなロングポーリング ソリューションの使用に関連する長所と短所は何なのか疑問に思っていました。もう 1 つのオプションは、TCP を使用して独自のソリューションを実装することです。私が読んだところによると、多数のユーザーを処理し始めると、Tomcat/Jetty でうまく動作しないため、専用サーバーでロング ポーリング ソリューションを実行する必要があるようです。WebSockets の方がスケーリングが優れているように思えます。Comet を介して Websockets を使用することに不利な点はありますか、それとも TCP 接続を使用する独自のソリューションに頼るべきですか? 使用するトラフィックが最も少ないオプションを探しています。

4

1 に答える 1

5

新しいことを学ぶためのユースケースと許容範囲に依存すると思いますが、確かに、通信にWebSocket APIを使用する道をたどる、あるいはSSEでさえ、多くの理由で従来のロングポーリング/Cometソリューションよりも優れています。あなたが言及した-スケーラビリティだけでなく、帯域幅の使用率と遅延についても。WebSocketはWebにとって、TCPはデスクトップ(ソケットなど)にとって何であるかを理解することも重要です。デスクトップソリューションでは、必ずしもTCPに対してコーディングする必要はなく、STOMPやXMPPoverTCPなどのトランスポートプロトコルをサポートするクライアントライブラリを使用します。WebSocketを使用する場合も同じことを行い、XMPPサーバーなどと通信するサーバーを選択し、WebSocketを介してサーバーと通信するXMPPクライアントライブラリを選択します。

ここでその例を見ることができ、ここ読むことができるドキュメントがあります

注意すべき点は、ブラウザでHTML5 WebSocketが採用されていることです。現在ChromeとSafariで使用されており、まもなくFFとOperaで使用されるようになります。これについては対処しましたが、独自のサーバーを構築する場合は、古いブラウザー用のフォールバックソリューションを作成する必要があります。

于 2010-07-30T17:01:18.947 に答える