我在PhoneGap中制作Android应用程序。我要做的是让应用程序通过WebSockets与我的Node.js服务器通信。我的Node.js服务器使用Socket.IO,当我打开应用程序时,它会自动回退到轮询,这与桌面Chrome应用程序相反,后者很乐意打开WebSocket并通过它进行通信。
我已阅读this blogpost关于将实际的WebSocket API与Phonegap集成的信息。问题在于我没有手动覆盖'onConnect,onMessage'功能,而是Socket.IO为我做了所有这些。
有没有办法将WebSockets集成到我的Android Phonegap应用程序中?
答案 0 :(得分:5)
简短回答: Cordova WebView不支持WebSockets 和 socket.io无法连接到基于标准的WebSocket客户端。
对于您的客户端,如果您需要真正的websockets,您仍然需要使用特定于Android版本或iOS版本的Cordova插件。试试this search,其中包括针对Android插件的anismiles repo,与OP引用的博主相同。
因此,考虑到这一点,socket.io将不适用于您的服务器。遗憾的是,socket.io服务器不支持使用基于Html5标准的websocket连接连接到客户端,您必须使用其客户端库。正如您所见,您无法在Cordova中使用他们的客户端库......您可以,它只会回到投票。
所以现在你的websocket客户端是一个基于标准的Cordova插件,你需要一个支持基于标准的websocket连接的服务器。您应该查看SockJs,Worlize,Miksago或Einaros。还有其他人。我目前正在使用Worlize。
要记住的另一件事是,目前支持真正的websocket连接的云主机列表很短。我建议DotCloud或Nodejitsu。
如果这回答了您的问题,请点击复选标记:)
答案 1 :(得分:2)
更新答案,此插件适用于socket.io,使用起来更容易(仅限PhoneGap 3.x)。
答案 2 :(得分:0)
这个存储库很快就会集成到phonegap中(至少在自述文件中听起来像这样)
它还提供了使web套接字在phonegap / android中工作的步骤。
答案 3 :(得分:0)
这是我正在评估的另一个websockets Android客户端。
http://jwebsocket.org/mobile/android/android_part1.htm
我担心我不知道它对手机间隙项目是否有用,不熟悉它。
Phonegap需要允许您将外部Java库合并到项目中,并且需要在java中为它构建一个接口。