适用于Android的WebSockets,适用于带有Node.js / Socket.IO服务器和客户端的Phonegap应用程序

时间:2012-01-29 16:20:55

标签: android node.js cordova websocket socket.io

我在PhoneGap中制作Android应用程序。我要做的是让应用程序通过WebSockets与我的Node.js服务器通信。我的Node.js服务器使用Socket.IO,当我打开应用程序时,它会自动回退到轮询,这与桌面Chrome应用程序相反,后者很乐意打开WebSocket并通过它进行通信。

我已阅读this blogpost关于将实际的WebSocket API与Phonegap集成的信息。问题在于我没有手动覆盖'onConnect,onMessage'功能,而是Socket.IO为我做了所有这些。

有没有办法将WebSockets集成到我的Android Phonegap应用程序中?

4 个答案:

答案 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连接的服务器。您应该查看SockJsWorlizeMiksagoEinaros。还有其他人。我目前正在使用Worlize。

要记住的另一件事是,目前支持真正的websocket连接的云主机列表很短。我建议DotCloudNodejitsu

如果这回答了您的问题,请点击复选标记:)

答案 1 :(得分:2)

更新答案,此插件适用于socket.io,使用起来更容易(仅限PhoneGap 3.x)。

https://github.com/mkuklis/phonegap-websocket

答案 2 :(得分:0)

这个存储库很快就会集成到phonegap中(至少在自述文件中听起来像这样)

它还提供了使web套接字在phonegap / android中工作的步骤。

看看:https://github.com/anismiles/websocket-android-phonegap

答案 3 :(得分:0)

这是我正在评估的另一个websockets Android客户端。

http://jwebsocket.org/mobile/android/android_part1.htm

我担心我不知道它对手机间隙项目是否有用,不熟悉它。

Phonegap需要允许您将外部Java库合并到项目中,并且需要在java中为它构建一个接口。