Phonegap Androidプラットフォームのwebsocketサポートを追加し、デフォルトをsocketにします.io優先チャネル選択
5430 ワード
Phonegap Androidプラットフォームのwebsocketサポートを追加し、デフォルトをsocketにします。io優先チャネル選択
広く知らせる
SOcketを使用ioはブラウザプラットフォームにまたがるリアルタイムプッシュの第一選択として、テストされた各主流ブラウザでのテストは確かに良好なリアルタイム表現を持っている.ここではsocketio-nettyサーバ側を普及させるために、次の広告を行い、同時に予熱します.
socketio-netty:もう一つのsocket.ioサーバ側実現、0.9-1.0バージョン対応~
模範目的.
IE 6+、Firefox、Chrome、Safari、Operar、IOS、Androidなどが正常に動作し、具体的な環境に応じて最適な通信チャネルを自動的に選択できるように、市販のブラウザで正常に動作する集団チャットアプリケーションを構築します.
ええ、ブラウザにまたがるプラットフォームである以上、自然にsocketを選びます.io(クライアントjs)になりました.これも本稿の重心であり,本稿の最終はsocket.io(クライアントjs)バージョンは、PhonegapパッケージのAndroid ApkプログラムでWebsocketプロトコルを使用して、迅速なデータ交換の目的を達成し、交換性能を向上させることができます.
同時に、私たちの模範的な応用ができるだけ1回作成され、あちこちで実行されることを保証します.
まあ、socket.io(クライアントjs)+socketio-netty(socket.ioサーバ側JAVA実装)+Phonegapは、非常にインタラクティブなブラウザ間、モバイル間アプリケーション間のHTMLアプリケーションを構築するのに良い選択です.
また、本明細書の例示的な項目は、その機能を示すだけで、スタイルを保証しない.
Phonegap
公式サイト
公式サイトは次のように定義されています.
PhoneGap is an HTML5 app platform that allows you to author native applications with web technologies and get access to APIs and app stores.
日语翻译:
PhoneGapは、HTML、CSS、JavaScriptを使用してプラットフォーム間でモバイルアプリケーションを構築するオープンソースの開発フレームワークです.
HTML+CSS+Javascriptを使用してプラットフォーム間でのモバイルリファレンスを構築できるのは、確かにいいですね.お勧めします.
クラウド構築サービス(https://build.phonegap.com/apps)、本機はアプリケーションを作成した後(トップページがindex.htmlであることを保証し、関連するcss/jsが一緒に保存されている)、zipにパッケージ化し、アップロードし、自動的に異なるプラットフォームの下の配置パッケージを自動的に構築し、非常に便利である.
表面的にはすべて完璧だが、Androidシステムに配備された後、socket.ioはwebsocket双方向のチャネルを使用できません.socket.ioのデフォルトではxhr-long polling通信モードが採用されています.仕方がない.
リアルタイムインタラクションデータ量が大きい場合,xhr−long polling,jsonp polling,Websocket/flashsocketに比べて超えられない速度優位性を有し,同時に双方向データ伝送チャネルを観察することで明らかに感じることができる.
の原因となる
html 5に対するブラウザのサポート状況を確認する方法、ブラウザアクセスhttp://html5test.comHTML 5のサポート状況や走分などを調べることができます.
はい、Phonegapは2.0バージョン以降、Androidのwebsocketサポートを追加すると噂されていますが、現在のバージョンは1.7です.
解決策
animesh kumarが開発したwebsocket-android-phonegapプロジェクトは、Phonegapにwebsocketクライアントプロトコルをサポートさせ、java nioを使用してwebsocketクライアントプロトコル接続を作成するとともに、Phonegapはカスタムコンポーネントをサポートし、JSとJAVAコードの相互呼び出しオープンアーキテクチャをサポートすることで、偽装のwebsscoketを促進した.js.
DWRの味がしますが、もっと柔軟です.
もう一つ単純なsocket.io androidクライアント実装:
https://github.com/koush/android-websockets#readme
興味のある方は、参考にしてみてください.
Nettyを使用してwebsocketクライアントを構築し、jsなどを結合するつもりだったが、オープンソース実装があり、ドアを閉めて車を作らない.
簡単な説明
1. App.JAva修正後:
DroidGapが継承され、バインディング文が指定されていることを確認します.
// websocket
appView.addJavascriptInterface(new WebSocketFactory(appView),
"WebSocketFactory");
JAVA側設定完了.
2.クライアントの変更
htmlページ側で手足を作ってwebsocketを優先的にロードする必要があります.jsはいくつかの環境変数の設定を行い、socket.ioはwebsocketのサポートを検出できます.
websocekt.jsの初期化コード:
初期化コードに注意してください.
//window objectvar global = window;
//WebSocket Object. All listener methods are cleaned up!var WebSocket = global.WebSocket = function(url)......
socket.io client websocketコードクリップ:
Websocketの検出関数を見てみましょう.
WS.check = function () { return ('WebSocket' in global && !('__addTask' in WebSocket)) || 'MozWebSocket' in global;};
自然にカスタマイズされたwebsocket.jsとsocket.io両者は自然につながっている.
したがって、必要なページJSのロード順序は、
HTMLページ側では、
他のプラットフォームについては、/chatdemo/assets/wwwディレクトリの下をzipパッケージにパッケージ化し(
まとめ
Phonegapではandroidプラットフォームにwebsocketをサポートさせ、手順は簡単です.