我目前正在實施一個跨平臺的移動應用程序與Phonegap,使用HTML5和Javascript。我決定使用網絡套接字與我們的後端服務器建立連接以進行通信和交換數據。默認情況下,Blackberry和iOs瀏覽器支持Websockets。對於Android有一些有前途的插件可以將websockets整合到Android java代碼中並使用Javascript在Phonegap中執行它。 我選擇了這一個:Phonegap websocket插件與Android版本> 4.0.3不起作用
我集成該插件到我的Android項目,並遵循自述文件中的每一步。然後我使用Android 4.0.3在物理設備Samsung Galaxy Nexus上進行了測試。它運行良好,在那裏沒有可見的差異,黑莓和iOs的使用。我也部署了應用程序到三星Galaxy Tab 2
嗯,如果我將應用程序部署到OS版本高於4.0.3的Android設備(4.1.2和4.2.2上的測試),則會出現問題。如果我在Android 4.2.2上使用三星Galaxy Nexus,它甚至會出現問題!
多汁的是,我使用Phonegap 2.6.0,它會自動創建基於操作系統版本4.2.2的Android項目!
問題是,項目的本機Android部分內的Websocket服務器無法打開與請求客戶端的連接。通常,客戶端發送一個請求以打開連接,服務器通過回調通知客戶端連接已建立。
如果使用Android 4.0.4+,服務器連接將返回404 BAD REQUEST消息而不是打開連接。
由於這個問題,我嘗試了一些其他插件,實際上我可以找到每一個插件。他們都在Android 4.0.3上運行良好,在較高版本上都沒有。
有沒有人在那個特定主題的任何經驗,可以給我一個提示,我可能忘記或指向我要考慮?我無法想象沒有適用於Android 4.0.4+的websocket插件可用!
上是否連接的WebSocket你的應用程序100%的回覆?換句話說,如果無法建立WebSocket連接,您的應用程序將按預期停止工作?如果是這樣,你應該選擇一個也提供HTTP後備的解決方案。 – leggetter
我是https://github.com/mkuklis/phonegap-websocket背後的開發者,我在Android 4.0>以上使用它。在過去的兩個月裏有一些修復程序可以解決您的問題。如果您使用Phonegap 2.x.x請使用以下分支:https://github.com/mkuklis/phonegap-websocket/tree/phonegap-2.x.x –