【发布时间】:2014-10-10 21:18:39
【问题描述】:
我正在构建一个移动应用程序,只要服务器有可用的新数据,它就会从服务器接收数据。我正在为我的移动应用程序使用 cordova 和 ionic 框架,并为移动应用程序获取数据的 API 和服务器使用 PHP/MySQL/Apache。
有什么方法可以让我从我的服务器中检索数据(JSON 格式),而无需在我的移动应用程序中使用 http.get 每隔 n 秒不断地请求数据?因为我只需要在它有新数据时获取,而不是一直获取新数据,但有时,在峰值时每秒都有新数据。 Apache/PHP 是否可以处理这个问题,或者我是否需要切换到例如 nodejs 之类的?提前致谢。
顺便说一句,我希望我的移动应用程序在一秒钟内收到数据。
我的问题与Receive update from server with mobile framework 和https://softwareengineering.stackexchange.com/questions/225589/how-to-refresh-keep-up-to-date-content-in-the-browser-without-overloading-the-se 非常相似,但我现在还在犹豫。
【问题讨论】:
-
服务器端推送机制需要使用websockets。你可以看看socket.io
-
这适用于 PHP 和 Apache 吗?还是我真的需要切换到nodejs?
-
服务器推送不需要 websockets,但它是最有效的传输方式。例如,长轮询也可以满足要求。
-
@frank 根据您是否需要全双工通信,您可以使用server-sent events 而不是 websockets。这仅允许单向通信,因此如果您希望与服务器进行完整的来回对话,您仍然需要 websockets。
标签: php mysql node.js angularjs cordova