开始使用 Google-cloud-messaging
Google 云消息传递:概述
Google Cloud Messaging(GCM)
是一项免费服务,可让开发人员在服务器和客户端应用之间发送消息。这包括从服务器到客户端应用的下游消息,以及从客户端应用到服务器的上游消息。
例如,轻量级下游消息可以通知客户端应用程序从服务器获取新数据,如新电子邮件通知的情况。对于即时消息传递等用例,GCM 消息可以将最多 4kb 的有效负载传输到客户端应用程序。GCM 服务处理消息排队以及与目标客户端应用程序之间的传递的所有方面。
建筑概述
GCM 实施包括 Google 连接服务器,你环境中通过 HTTP 或 XMPP 协议与连接服务器交互的应用服务器以及客户端应用。
以下是这些组件的交互方式:
- Google GCM 连接服务器接受来自你的应用服务器的下游消息,并将其发送到客户端应用。该 XMPP 连接服务器也可以接受来自客户端应用程序上游发送消息并将其转发到你的应用服务器。有关更多信息,请参阅关于 GCM 连接服务器 。
- 在 App Server 上,实现 HTTP 和/或 XMPP 协议以与 GCM 连接服务器通信。应用服务器将下游消息发送到 GCM 连接服务器; 连接服务器将消息排队并存储,然后将其发送到客户端应用程序。如果你实施 XMPP,你的应用服务器可以接收从客户端应用发送的消息。
- 该客户端应用是启用 GCM 的客户端应用程序。要接收和发送 GCM 消息,此应用程序必须向 GCM 注册并获取称为注册令牌的唯一标识符。有关如何实施客户端应用程序的更多信息,请参阅所用平台的文档。
关键概念
下面总结了 GCM 中涉及的关键术语和概念。它分为以下几类:
- 组件 - 在 GCM 中起主要作用的实体。
- 凭据 - GCM 中使用的 ID 和令牌,用于确保所有方都已通过身份验证,并且消息将转到正确的位置。
GCM 组件和凭据。
组件
- GCM 连接服务器 - 涉及在应用服务器和客户端应用之间发送消息的 Google 服务器。
- 客户端应用程序 - 启用 GCM 的客户端应用程序,与你的应用服务器通信。
- 应用程序服务器 - 你在实施 GCM 时编写的应用程序服务器。应用服务器通过 GCM 连接服务器将数据发送到客户端应用程序。如果你的应用服务器实现 XMPP 协议,它还可以接收从客户端应用上游发送的消息。
证书
发件人 ID
配置 API 项目时创建的唯一数值。在注册过程中使用发件人 ID 来标识允许向客户端应用程序发送消息的应用服务器。服务器密钥
保存在应用服务器上的密钥,可让应用服务器授权访问 Google 服务。在 HTTP 中,服务器密钥包含在发送消息的 POST 请求的标头中。在 XMPP 中,服务器密钥在 SASL PLAIN 身份验证请求中用作密码以验证连接。不要在客户端代码中的任何位置包含服务器密钥。你在创建 API 项目时获取服务器密钥。应用程序 ID
正在注册以接收消息的客户端应用程序。如何实现这是依赖于平台的:- Android :使用应用清单中的包名称。
- iOS :使用应用程序的包标识符。
- Chrome :使用 Chrome 扩展程序名称。
注册令牌
GCM 连接服务器向客户端应用程序发出的 ID,允许它接收消息。请注意,注册令牌必须保密。
生命周期流程
- 注册以启用 GCM 。客户端应用程序的实例注册以接收消息。有关更多讨论,请参阅注册客户端应用程序 。
- 发送和接收下游消息。
- 发送和接收上游消息。此功能仅在你使用 XMPP 连接服务器时可用。
- 发送消息。客户端应用程序向应用服务器发送消息:
- 在设备上,客户端应用程序将消息发送到 XMPP 连接服务器。有关客户端应用程序如何通过 XMPP 发送消息的详细信息,请参阅特定于平台的文档。
- 如果服务器断开连接,XMPP 连接服务器会将消息排入队列并存储。
- 重新连接应用服务器时,XMPP 连接服务器会将消息发送到应用服务器。
- 收到消息。应用服务器从 XMPP 连接服务器接收消息,然后执行以下操作:
- 解析邮件标头以验证客户端应用程序发件人信息。
- 将
ack
发送到 XMPP 连接服务器以确认接收消息。 - (可选)解析客户端应用程序定义的消息有效内容。
- 发送消息。客户端应用程序向应用服务器发送消息:
官方文档参考可以在这里找到。