Android 带Node.js/Socket.IO服务器和;客户

Android 带Node.js/Socket.IO服务器和;客户,android,node.js,cordova,websocket,socket.io,Android,Node.js,Cordova,Websocket,Socket.io,我正在PhoneGap中制作一个Android应用程序。我试图做的是让应用程序通过WebSocket与我的Node.js服务器对话。我的Node.js服务器使用Socket.IO,当我打开应用程序时,它会自动返回到轮询状态,与桌面Chrome应用程序相反,桌面Chrome应用程序会愉快地打开一个WebSocket并通过它进行通信 我读过关于将实际的WebSocket API与Phonegap集成的文章。问题是我没有手动重写“onConnect,onMessage”函数,而是Socket.IO为我

我正在PhoneGap中制作一个Android应用程序。我试图做的是让应用程序通过WebSocket与我的Node.js服务器对话。我的Node.js服务器使用Socket.IO,当我打开应用程序时,它会自动返回到轮询状态,与桌面Chrome应用程序相反,桌面Chrome应用程序会愉快地打开一个WebSocket并通过它进行通信

我读过关于将实际的WebSocket API与Phonegap集成的文章。问题是我没有手动重写“onConnect,onMessage”函数,而是Socket.IO为我完成了所有这些


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

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

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


看看:

这是另一个websockets Android客户端,我目前正在评估它

恐怕我不知道它对phonegap项目是否有用,因为我不熟悉它


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

简短回答:Cordova WebView不支持WebSocket,并且socket.io不连接基于标准的WebSocket客户端

对于您的客户机,如果您想要真正的WebSocket,您仍然需要使用特定于Android构建或iOS构建的Cordova插件。Try,其中包括一个Android插件的anismiles repo,同一个博客被OP引用

因此,考虑到这一点,socket.io将不适用于您的服务器。不幸的是,socket.io服务器不支持使用基于Html5标准的websocket连接连接到客户端,您必须使用它们的客户端库。正如您所看到的,您不能使用Cordova中的客户机库……您可以,它只能回退到轮询

因此,现在您的websocket客户端是一个基于标准的Cordova插件,您需要一个支持基于标准的websocket连接的服务器。你应该看看、或。还有其他的。我目前正在使用Worlize

另一件需要记住的事情是,目前有一个支持真正websocket连接的云主机的简短列表。我向你推荐


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

更新答案,此插件与socket.io配合使用,使用起来更方便(仅限PhoneGap 3.x)


我可能问得不够彻底,但我知道这个存储库,我已经尝试过了。问题是Socket.IO库让我没有选择覆盖Socket.onmessage等方法。这反过来又使我无法将此存储库与我的代码一起使用。我想知道是否有可能将WebSockets与Android Phonegap Socket.IO客户端应用程序结合使用。我也可能没有充分研究这是否符合您的所有标准:)完美答案。谢谢你的努力!:)我不太明白这个答案。我想在我的android应用程序中使用phone gap和node.js,但你是说html5地理位置和web套接字与phone gap不兼容。。或者?嗨,不,我没提到地理位置,这在PhoneGap中很好用。PhoneGap使用内置的WebView控件,该控件是一个嵌入式web浏览器,可将Html和Js代码作为应用程序运行。这种嵌入式浏览器没有HTML5WebSocket功能,所以你需要使用一个单独的插件,比如真正的WebSocket或,还有一个2.x.x版本