在 GCM 3.0 中,谷歌已经努力简化了注册过程,并使他们的云通知系统在 Android、iOS 和 Chrome 上以类似的方式工作。该版本还带来了一个新的“主题群组(topic group)”以及一个消息传递诊断工具。
每个客户端应用会收到一个实例ID ,该标示符与运行在特定设备上的应用实例相关联。实例ID 在各自应用的生命周期内一直有效,直到应用从设备上卸载。消息推送由通过一个API 调用生成的安全令牌进行授权。令牌如果泄露,可以进行替换。
_ 设备组 _ 是一个非常有用的 GCM 特性。服务器可以在 GCM 上创建设备组,接收一个“通知键(notification key)”用于向整个组发送消息。设备组允许编辑,可以增加或删除客户端。一个组最多包含 20 台设备,适用于向属于某个用户的所有设备发送消息。客户端也可以向设备组发送消息。
GCM 3.0 引入了“主题消息传递(topic messaging)”,这是一种向大量客户端发送消息的方式。应用可以创建一个或多个主题,并向每个主题注册客户端。然后,消息会针对特定主题发送,GCM 会监控所有注册到该主题的客户端。通过这种方式,应用可以将消息发送给许多甚至全部客户端。
谷歌向开发者控制台添加了一个用于 GCM 消息诊断的工具,最多展示 30 条消息的状态以及每条消息的细节信息。该工具会在消息发送完成后几分钟内提供诊断信息。
这些新特性在 Android、iOS 和 Chrome 上的工作方式大致相同。在向苹果设备发送消息时有一点不同。对于 iOS,应用需要连接到 APNS 服务器获取一个令牌,然后用它获取一个 GCM 令牌。至于实际的通信过程,如果应用在 iOS 设备的后台运行,那么 GCM 使用 APNS 发送消息,应用的行为与使用苹果的通知系统类似。但是,当应用处于活动状态时,GCM 直接与应用通信,所有 GCM API 对 iOS 应用而言都是可用的,包括消息上传、多点传递、消息流,等等。
据来自谷歌方面的消息,GCM 上目前大约已注册了 60K 个应用,每秒向 15 亿设备发送大约 1.1M 消息,2015 年预计将超过 25T 条消息。在全球范围内,消息平均延迟 50 毫秒。该服务仍然免费。
谷歌 I/O 2015 大会(视频)提供了有关GCM 3.0 的更多细节信息。
评论