Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从服务器发送到Android应用程序的最佳实践_Android_Push Notification_Google Cloud Messaging_Communication - Fatal编程技术网

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

将数据从服务器发送到Android应用程序的最佳实践,android,push-notification,google-cloud-messaging,communication,Android,Push Notification,Google Cloud Messaging,Communication,至于澄清,这一问题没有重复,因为 这种情况与其他相关问题不同 我们正在开发一个客户端应用程序,它将从服务器端PHP驱动的web应用程序接收数据。数据至关重要,必须尽快交付给用户。无论客户机从服务器请求数据还是服务器将数据推送到客户机,我们唯一需要的是一个可靠且快速的选项 有几种方法,但不适合我们的项目: 使用GCM推送通知功能: 这是一个很好的选择,但在实践中,我们失去了几个推力,所以它不可靠,另一方面,延迟太多。我再说一遍,情况很危急,所以一定很快 客户端以1秒或2秒的间隔从服务器请求数

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

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

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

  • 使用GCM推送通知功能:
这是一个很好的选择,但在实践中,我们失去了几个推力,所以它不可靠,另一方面,延迟太多。我再说一遍,情况很危急,所以一定很快

  • 客户端以1秒或2秒的间隔从服务器请求数据:
这是迄今为止我们认为最好的解决方案,但确实很昂贵。它既可靠又快速。但另一方面,我们受到干扰的服务器承受的压力非常大,即使使用我们当前的客户端数量,它们也变得毫无用处。如果客户数量增加,我们就会减少

  • 基于SMS的推送:
我们的另一个选择是向客户端手机发送短信,并使用该数据操作应用程序。使用这种方法,服务器上的压力将非常低(就像GCM选项一样)。但在我们国家的移动网络中发送短信通常会延迟10秒。虽然这个选项有很好的可靠性,但速度太低,我们无法使用它

  • 基于调频广播信号的推送:
我们可以使用客户的调频收音机从当地广播电台获取数据。这种方法是可靠的,速度非常快,但车站的成本将杀死我们!即使我们处理好了(阅读:我们不能),客户也不会总是将耳机连接到智能手机上


那么,还有什么选择呢?什么是一种可靠且几乎快速的方法,不会对我们的服务器造成很大压力?

可能会建议使用
WebSockets
作为您描述的案例(例如使用
OkHttp
库)-有关其使用的详细概述,请参见下文。一种常见的模式是将WebSocket与Http REST请求一起使用(例如,对于初始追赶查询)。此外,当应用程序处于前台时,您通常只使用WebSocket,否则将依赖推送通知。

但通过客户端请求数据,我们每分钟将收到数百万个请求!我们如何处理它?使用WebSocket的要点是,服务器将在需要时开始向客户端发送数据(而不是客户端必须进行轮询)@asDca21@asDca21您确定了解决方案吗?@JohnO'Reilly几乎是的,我们正在研究推送技术。