WebSockets还是带手机的select?

如何将低延迟数据发送到服务器,并返回phonegap?

考虑到我没有在本地访问php文件,并没有经验的node.js或WebSockets,我不知道我应该使用哪些。

       

网上收集的解决方案 "WebSockets还是带手机的select?"

WebSocket本身不受Android或Android 版本的旧版本的浏览器的支持,这意味着如果要在客户端上使用它们,则需要使用PhoneGap插件。

有更多的信息在: http : //remysharp.com/2010/10/04/websockets-in-phonegap-projects/

但是,我不确定(即使是插件),当设备在networking连接(WiFi – > 3G – > WiFi)之间移动时,WebSocket的可能性有多大,所以使用简单的轮询Web服务可能是更可靠的选项如果您的应用程序需要继续接收数据作为您的用户移动。

如果您需要接收服务器发起的数据,请考虑使用推送通知:iOS(APN)和Android(C2DM)都提供API来实现这一点,使电池更有效地使用电池,而不是让应用程序持续轮询您的服务器。

您可以在iOS和Android中使用PhoneGap中的WebSockets。 Safari中的iOS本机支持WebSocket。 对于Android,您将需要使用polyfill。

请参阅: https : //stackoverflow.com/a/13527585/39904

上面的答案提供了有关如何使PhoneGap使用的Android WebView中的WebSocket对象可用的信息,并提供了一个指向示例项目的链接,您可以使用该示例项目来开始。

WebSockets是作为“Comet”黑客的解决scheme而开发的。 因此,它们为客户端和服务器之间的实时双向通信提供了一个非常低延迟的解决scheme。 这意味着低带宽和低资源使用率 – 手机上的电池 – 因为您持有打开的单个连接,而不是打开和closures多个HTTP连接。 定期发出请求的轮询解决scheme可能比WebSocket解决scheme耗尽电池快得多。 如果以较低的时间间隔进行轮询,则可能会很好 – 这取决于您的使用情况。

就WebSockets而言,当您在networking和networkingtypes(WiFi→3G→WiFi)之间切换时,如果您在本地使用WebSockets,则需要检测onclose并重新连接。 您还需要确定最佳的连接types; 不安全(WS)或安全(WSS)。 我强烈build议你使用WSS for mobile,因为一些移动networking提供商使用干扰WS连接的透明代理。 这听起来很复杂,但有一些库可以帮你处理。 例如Pusher JavaScript库 ( 注:我为Pusher工作 )。 当环境不允许任何WebSocket连接发生时,诸如这些的库也提供回退到效率较低的基于HTTP的解决scheme。

另请参阅: 实时networking技术指南 。

我同意@ rmc47,你应该考虑本机推送通知,如果它是不频繁的单个通知

参考这个链接看浏览器和设备的WebSocket支持: html5test.com网站 – iOS 4.2+已经支持WebSocket

请参阅本文档 ,解释如何使用WebSocket开发简单的应用程序。

不幸的是,内容是在葡萄牙语(巴西)的语言,但你可以留下评论,我会回答。

我不确定“本地访问PHP文件”是什么意思。 node.js和web套接字的使用也不是相互排斥的。

如果你还没有做出服务器实现的决定,你可以去node.js或ASP.NET。

node.js对使用Socket.io的套接字有很好的支持,它为您抽象了客户端实现。 所以如果有支持,它将使用WebSocket,否则将回退到长轮询。

ASP.NET有一个名为SignalR的库,它为.NET平台做了类似的事情。