2011-11-22 9 views
5

私はComet Hidden iFrame技術を使って、サーバーからモバイルブラウザにデータをプッシュするWebアプリケーションを開発しています。4KBのメッセージを送信せずに、Androidブラウザ用の代替サーバープッシュ/コメットの実装ですか?

すべてがMobile Safariでうまく動作しますが、Androidはもっと痛いものです。メッセージを考慮に入れるために、4 KBのメッセージをサーバーから送信する必要があるようです。これは、最初のメッセージだけでなく、各メッセージのためです。

一部の人々はXMLHttpRequestのストリーミングを使用して彗星を実装しようとしたが、同じ4KBの問題(http://code.google.com/p/android/issues/detail?id=13044)を持っている

誰もが実装するために管理しています4KBにメッセージを埋め込むことなく、Androidブラウザ上の技術を彗星にすることはできますか?サーバー送信されたイベントが http://caniuse.com/websockets

おかげ

-seb

のWebSocketに対して同じ

でもバージョンではサポートされていないアンドロイド4.0 http://caniuse.com/eventsource

思わ

のAndroid 2.1,2.2でテスト

答えて

2

qualifiあなたの直面する問題への答えとして、しかし、一般的な推奨は、合理的に良いpolyfillにフォールバックする将来的な技術を使用することです。

具体的な問題として、私はWebSocketが最良のテクノロジであり、WebSocketサーバー(node.js、Kaazing)と組み合わせて使用​​することをお勧めします。私はKaazingにもっと精通しています.WebSocketに準拠していないブラウザでもWebSocketのネイティブパフォーマンスとほぼ同じパフォーマンスを発揮します。 WebSocketエミュレーションの詳細については、this post useful on WebSocket emulationがあります。

+0

ウェブソケット**はほとんどの3g接続で動作しません**。バンドワゴンに飛び乗るときは、そのことを覚えておいてください。 –

+0

それはまさにエミュレーションが非常に重要である理由です。 –

1

この4KBのバッファの問題は長年にわたって起こっていて、デスクトップブラウザやAndroid Internet.app(これは私が知らなかった)の場合でもそうです。

解決策は、最初の接続で4KBのチャンクを送信することです。そして、これはHTTP StreamingHTTP Long-Pollingより良い解決策である1つのシナリオです。ストリーミングを使用すると、接続を閉じてから再オープンするロングポーリングとは異なり、新しいデータが利用できるときに接続を開いたままにしておくことができます。この技術は、無駄なデータの最初の不幸な4KBチャンクが存在するが、それを超えるすべてのデータは実際のデータ(使用可能)であることを意味する。私はこのバッファサイズで人生の何時間も騒いでいるが、ウェブブラウザ間で矛盾していることがある。

しかし、多くの金融機関で使用されているエンタープライズレベルのアプリケーションでHTTPストリーミングを使用している企業はCaplin Systemsなので、この作業を安定して行うことが可能です。

メッセージを4KBに埋め込まなくても、AndroidブラウザでComet技術を実装できた人はいますか?

これが起こる可能性は非常に低いです。 WebSocket(@Peter Moskovitsが指摘しているように)は、この双方向通信(現時点でのプッシュを重視した)が将来のクロスブラウザで実現する方法です。Androidのために、これは、ユーザーが、Androidが現時点でWebSocketをサポートしていないために必要となるFlash代替技術をサポートするために、インターネットアプリケーション用にFlashをインストールする必要があることを意味します。

1

Android、ブラウザ、およびrgdの場合。 WebSocketを:

  • Firefoxのモバイルサポート(税込最終RFC6455。)

  • 組み込みブラウザは一切WSはサポートがありません

  • Mobile用のChromeを(持っている(まで及び税込アンドロイド4。)完全なRFC6455)..のみAndroid用4

+0

WebSocketはAndroid 4.4 –

関連する問題