【问题标题】:Best practice to send data from server to Android application将数据从服务器发送到 Android 应用程序的最佳实践
【发布时间】:2018-01-13 16:29:05
【问题描述】:

至于澄清,这个问题没有重复,因为 情况与其他相关问题不同。

我们正在开发一个客户端应用程序,该应用程序将从服务器端 PHP 驱动的 Web 应用程序接收数据。数据至关重要,必须尽快交付给用户。不管是客户端从服务器请求数据还是服务器将数据推送到客户端,我们唯一需要的是一个可靠快速选项。

有几种方法,但都不适合我们的项目:

  • 使用 GCM 推送通知功能:

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

  • 客户端以 1 或 2 秒的间隔向服务器请求数据:

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

  • 基于短信的推送:

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

  • 基于调频广播信号的推送:

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

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

【问题讨论】:

    标签: android push-notification google-cloud-messaging communication


    【解决方案1】:

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

    【讨论】:

    • 但是通过客户端请求数据,我们每分钟会收到数百万个请求!我们该如何处理呢?
    • 使用 WebSockets 的重点是服务器会在需要时向客户端发送数据(而不是客户端必须轮询)
    • @asDca21 Push technology
    • @asDca21 你确定解决方案了吗?
    • @JohnO'Reilly 几乎是的,我们正在研究推送技术。
    猜你喜欢
    • 2018-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多