Android GCM的工作原理是什么?

del*_*amp 4 android google-cloud-messaging

我想知道android push框架如何能够区分通过GCM收到的数据并将其转发到适合它的应用程序?

谁能让我知道它是如何完成的?

U.S*_*wap 9

您提出疑问:android push框架如何区分通过GCM收到的数据并将其转发到相应的Android应用程序.

从您的问题看来,您似乎愿意了解使用GCM服务的应用程序中存在的数据工作流和客户端服务器体系结构.

根据谷歌的文档"Google Cloud Messaging for Android(GCM)是一项服务,可帮助开发人员将数据从服务器发送到Android设备上的Android应用程序".GCM是Google为开发人员提供的一项服务,可帮助开发人员将数据从服务器发送到任意数量的Android设备.

简化的特定应用工作流程:

推送通知可以向大众观众或一组选定的用户广播.当必须发送关于营销活动的通知时,群众受众是目标.必须发送个性化信息时,将针对用户子集.

简化的特定应用工作流程

以下步骤说明了推送通知如何在Android设备上运行:

  1. 第一个Android设备将发件人ID,应用程序ID发送到GCM服务器进行注册.
    1. 注册成功后,GCM服务器向Android设备发出注册ID.
    2. 收到注册ID后,设备会向我们的服务器发送注册ID.
    3. 我们的服务器将注册ID存储在数据库中以供进一步使用.
    4. 每当需要推送通知时,我们的服务器都会向GCM服务器发送一条消息以及设备注册ID(它先前存储在数据库中).
    5. GCM服务器将使用设备注册ID将该消息传递给受尊敬的移动设备.

使用下图也可以理解这一点 在此输入图像描述

示例工作流程: 示例WorkFlow

因此,从上面的图像中很容易理解,每当用户首次安装android应用程序时,它就会将自己注册到GCM服务器,并获得唯一的GCM ID,那么我们的主机服务器有责任保留这个新注册的注册ID. android用户进入数据库,然后每当服务器端应用程序愿意将消息发送给该特定的android用户时它将被使用.

那么,让我们考虑一个案例; 假设某个服务器想要将某些数据发送给Android用户,该用户在首次安装时已经注册了它的GCM ID 1234567,并且因为它位于服务器的数据库中,服务器应用程序将从数据库中获取它,并简单地发出HTTP POST请求JSON格式的GCM服务器,它将注册用户的GCM ID以及要发送的数据,就像GCM服务器拥有所有已注册的GCM/Android客户端的记录一样,它直接将该消息转发给预期的Android用户,用户手机中的Android和Android应用程序将提升和通知警报,以指示推送通知已到达.

希望这回答了一个问题!