将数据从服务器发送到 Android 应用程序的最佳实践

Best practice to send data from server to Android application

As for clarification, this question is not duplicated since the situation differs from other related questions.

我们正在开发一个客户端应用程序,该应用程序将从服务器端 PHP 支持的 Web 应用程序接收数据。数据很关键,必须尽快交付给用户。客户端向服务器请求数据还是服务器向客户端推送数据都没有关系,我们唯一需要的是 reliablefast 选项.

有几种方法,但没有一种适合我们的项目:

这是一个很好的选择,但在实践中,我们失去了几次推送,所以它不可靠,另一方面,延迟太多了。再说一遍,情况危急,一定要快

这是我们认为迄今为止最好的解决方案,但确实很昂贵。它可靠且快速。但另一方面,我们受到干扰的服务器的压力变得非常高,即使我们目前的客户端数量,它们也变得毫无用处。如果客户数量变大,我们就会崩溃。

我们的另一个选择是向客户端手机发送短信并使用该数据来运行应用程序。使用这种方法,我们服务器的压力会变得非常低(就像 GCM 选项一样)。但是在我们国家的移动网络中发送短信通常会延迟,通常为 10 秒。这个选项虽然可靠性好,但是速度太慢,我们用不上。

我们可以使用客户端调频收音机从本地广播电台获取数据。这种方法可靠且非常快,但站的成本会让我们丧命!即使我们处理了它(阅读:我们不能),客户也不会总是将耳机连接到智能手机。

那么,有哪些替代方案?什么是可靠且近乎快速且不会对我们的服务器造成太大压力的方法?

可能会推荐使用 WebSockets 用于您描述的情况(例如使用 OkHttp 库)- 请参阅下面的使用概述 https://medium.com/@ssaurel/learn-to-use-websockets-on-android-with-okhttp-ba5f00aea988。一种常见的模式是将 WebSockets 与 Http REST 请求一起使用(例如,用于初始追赶查询)。此外,您通常只会在应用程序处于前台时使用 WebSocket,否则依赖推送通知。