現在、HTML5 と Javascript を使用してPhonegapでクロスプラットフォーム モバイル アプリを実装しています。通信とデータ交換のために、 Websocketsを使用してバックエンド サーバーへの接続を確立することにしました。デフォルトでは、Websocket は Blackberry および iOS ブラウザでサポートされています。Androidの場合、websocket を Android Java コードに統合し、Javascript を使用して Phonegap で実行する有望なプラグインがいくつかあります。私はこれを選びました:
そのプラグインを Android プロジェクトに統合し、readme のすべての手順に従いました。次に、Android 4.0.3 を搭載した物理デバイス Samsung Galaxy Nexus でテストしました。それはうまく機能し、Blackberry と iOs の使用に目に見える違いはありませんでした。また、アプリを Samsung Galaxy Tab 2 に展開しました
OS バージョンが 4.0.3 (4.1.2 および 4.2.2 の testet) よりも高い Android デバイスにアプリをデプロイすると、問題が発生します。Android 4.2.2 で Samsung Galaxy Nexus を使用すると、問題が発生することさえあります。
興味深いのは、OS バージョン 4.2.2 に基づく Android プロジェクトを自動的に作成する Phonegap 2.6.0 を使用することです!!
問題は、プロジェクトのネイティブ Android 部分内の Websocket サーバーが、要求元のクライアントへの接続を開くことができないことです。通常、クライアントは接続を開くリクエストを送信し、サーバーはコールバックを介して接続が確立されたことをクライアントに通知します。
Android 4.0.4+ が使用されている場合、サーバー接続は接続を開く代わりに 404 BAD REQUEST メッセージを返します。
その問題のため、他のプラグインをいくつか試しました。実際、見つけたすべてのプラグインを試しました。Android 4.0.3 ではすべて正常に動作しましたが、それ以降のバージョンでは動作しませんでした。
その特定のトピックの経験があり、ヒントを教えてくれる人はいますか? Android 4.0.4+ 用の有効な websocket プラグインが利用できないとは想像できません!