Androidブラウザ用のWebSocketsの代替手段
Androidオペレーティングシステムに含まれるWebブラウザは、WebサーバとWebクライアント、またはブラウザ間の継続的な接続を維持するプロトコルであるWebSocketsをサポートしません。 したがって、非同期接続ではなく永続接続を必要とするAndroidと互換性のあるWebサイトの設計をあなたのビジネスが意図している場合は、WebSocketに代わるものが必要です。 BOSH、Google Application Programming Interface、Cometなどのプログラミング実装はすべて、連続接続の方法を提供します。
WebSocketsの基本
WebSocketに代わるものを使って開発するには、それらが何であるかを知るのが役立ちます。 クライアントブラウザとサーバー間の非同期通信を中心とした "Web 2.0"開発とは異なり、WebSocketは両者間のオープンな接続を維持します。 非同期通信では、ユーザーのブラウザ側で常に「ポーリング」またはチェックを行う必要があります。 つまり、ブラウザは、事前に知らずに新しい情報がドキュメントに存在するかどうかをサーバーに問い合わせる必要があります。 WebSocketはこれを廃止し、ブラウザとサーバー間で常に連絡を取り合います。 他の方法でも同じことが実現できます。
ボッシュ
ネイティブのAndroidブラウザはWebSocketをサポートしていないため、別のフレームワークを実装する必要があります。 同期HTTPを介した双方向ストリームには、そのような代替手段が1つあります。 BOSHは連続TCP通信回線の実装を模倣しています。 BOSHでは、サーバーは実際に送信するデータがあるまでブラウザの要求に応答しません。 さらに、サーバーは、要求後に2回目のHTTP接続が確立されるまで、データに対するクライアント接続を受け入れません。 これは、表示されているページに関連するデータが存在または送信されている場合にのみ即時接続が行われるため、帯域幅と速度が低下し、Webページの読み込み速度が向上することを意味します。
GoogleチャンネルAPI
Google Channel APIは、GoogleサーバーとGoogleページおよびアプリケーションとの間のオープンな接続を維持します。 JavaScriptクライアントを使用してAPIを実装することで、ページまたはアプリケーションはGoogleサーバーへの安全な接続を確立できます。これにより、Googleサーバーはポーリングを繰り返すことなく一定のデータストリームを送信できます。 これはリアルタイムの更新を可能にします。これは、対面ゲームを実行するページやアプリにとって非常に有益であることを証明できます。 Google準拠のアプリケーションを開発する予定がある場合、これは便利です。
彗星とAJAX
前の例では同期接続がさまざまな方法でどのように維持されるかを示していますが、AJAXのあるComet接続スタイルは、オープンフレームワーク内で非同期ポーリングの使用を維持しようとします。 Cometは、ポーリングされていなくてもサーバーがデータを送信できる標準を提供することによって、帯域幅のコストや速度の低下など、クライアントのポーリングに関する問題を軽減しようとしています。 しかし、Cometは、ブラウザが同じ方法でコーディングや要求処理などのテクノロジの不可欠な部分を使用しないという点で、実装上の問題を引き起こします。