Android推送通知系统的工作原理

时间:2016-12-07 17:28:57

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

我有两个与Android推送通知系统相关的问题:

  1. 这个系统的工作原理是什么?客户端将自己的IP发送到Google Cloud Messaging Service(例如,当它切换自己的IP时)?所以这是一种汇集?。
  2. 您如何知道Google云消息服务"查看"通知消息的内容(在服务器中创建并发送给客户端)?

2 个答案:

答案 0 :(得分:1)

  

该系统的工作原理是什么?客户端发送自己的   IP到Google Cloud Messaging Service(例如,当它切换时)   它自己的IP)?所以它是一种汇集?

我在这里添加了一个描述GCM如何工作的图像。

How GCM works

这是一步一步的介绍。您需要在应用程序启动时首先获取推送注册ID。因此,如果您的后端服务器在您的应用程序中发送一些推送通知,则需要将注册ID传递给后端服务器。因此,当您需要发送推送通知时,您的后端服务器会将推送直接发送到具有目标注册ID的GCM。当您的设备上线时,GCM会设法在您的设备中推送通知。

所以这不是任何一种集合。 GCM唯一需要知道的是当设备联机并尝试与GCM通信时设备的注册ID。注册设备后,GCM会使用该注册ID发送推送通知。

  

您如何知道Google云消息传递服务"查看"该   通知消息的内容(在服务器和   发送给客户)?

这个问题对我来说不是很清楚。据我所知,您想知道当通知来自您的后端服务器时,GCM如何理解向谁发送推送通知。如果这是你的问题,那么我想我已经在答案的前一部分回答了这个问题。

GCM不需要查看您的通知内容以了解推送通知的目的地。正如我之前所说,当您的应用程序启动时,它会从GCM请求推送注册ID,并且当它收到注册ID时,您可能必须通过调用后端服务器的服务来传递注册ID。然后服务器知道它可以向谁发送一些通知。

因此,当它向客户端应用程序发送通知时,后端服务器会向GCM发送通知,其中包含您之前发送到后端服务器的注册ID。然后,当应用程序联机时,GCM会处理向客户端发送推送通知的问题。

希望有所帮助!

答案 1 :(得分:1)

回答有关GCM服务如何与客户端联系的问题,GCM客户端联系GCM以创建连接。您正确的设备地址会随着设备断开连接而重新连接,因此GCM无法从服务器端启动连接。

此连接尽可能保持,并且不会针对特定消息创建。

注册ID标识设备和应用程序,并允许GCM将消息路由到设备(如果已连接)。如果未连接,GCM需要等到设备重新连接。