0

私は Phonegap でアプリケーションを開発しており、クライアント アプリケーションには AutobahnJS で websocket を使用しています。

リモート Websocket サーバーは PHP と Ratchet を使用して開発され、SSL 上で実行されるため、接続には wss:// を使用します。

アプリケーションはエミュレーター (Android 4.4.2) で正常に動作しますが、Android 4.0.4 を実行する実際のデバイスを使用して websocket サーバーに接続する方法はありません。onOpen コールバックは起動せず、onClose のみが呼び出されます。

this.conn = new ab.Session(
  this.wsUri,
  function() { that.onOpen() },
  function() { that.onClose() },
  { // Additional parameters, we're ignoring the WAMP sub-protocol for older browsers
    'skipSubprotocolCheck': true
  }
);

アプリケーションをエミュレーターで動作させるには、websocket プラグインをインストールする必要がありました。

質問は次のとおりです。

Android 4.0.4 を実行するデバイスで Autobahn と Websocket を使用する機会はありますか?

前もって感謝します!

4

1 に答える 1

2

Android 4.4 以降、WebView は Chromium (バージョン 30) に基づいており、WebSocket のネイティブ サポートが含まれています。

古いバージョンの Android には、古いバージョンの WebKit に基づく WebView があり、(私の知る限り) ネイティブ WebSocket のサポートがありません: http://jimbergman.net/webkit-version-in-android-version/

つまり、Phonegap 用の WebSocket プラグインを使用して WebSocket を WebView に追加するか、AutobahnJS が HTTP longpoll ベースのフォールバック (開発中) を完了するのを待ち、WAMP-over-longpoll をサポートする WAMP v2 サーバーを使用する必要があります。

于 2014-05-08T09:59:19.273 に答える