设备如何接收 Android GCM 推送通知?

Posted

技术标签:

【中文标题】设备如何接收 Android GCM 推送通知?【英文标题】:How does device receive Android GCM push notification? 【发布时间】:2012-09-06 08:10:15 【问题描述】:

我最近一直在研究 android 推送通知。我想,我了解整体架构和消息流。

我想是这样的:

[Own server] --> [GCM] --> [Device] --> [Application]

路线中唯一神秘的部分是 [GCM] 和 [Device] 之间。

长话短说,使用什么基础架构将消息从 [GCM] 传递到 [Device]?

我在某处读到了一些信息,可能是设备保持与 GCM 的打开连接。如果是这种情况,打开什么样的连接?

【问题讨论】:

我认为它使用Gtalk connection。不确定ios,但黑莓推送就像短信一样 devblog.blackberry.com/2010/03/… 在黑莓手机中:[Own server] -> [Push Proxy Gateway (RIM BIS or corporate BES)] -> [carrier wireless network] -> [Device] -> [listener App]。更多信息在这里:docs.blackberry.com/en/developers/subcategories/… 这是针对每个平台的不同问题:Android、iOS、黑莓。我们不要把这一切都搞混了。 【参考方案1】:

Android Developers center 上有很多关于 CGM 的信息。 该设备保持与 CGM 的连接(我认为是 IP)。如果服务器和设备之间没有连接,CGM 将存储传入的消息以供稍后传递。

iOS 推送技术在 APNS(Apple 推送通知服务)和设备之间保持开放的 IP 连接(参见:wiki)。因此,它可能与 GCM 明显相同。

【讨论】:

哦,是的,谢谢。维基就是这么说的。我只是想知道,这是什么样的IP连接? TCP Socket连接的排序?我想,保持开放连接可能会导致电池问题..? 我没有找到关于 CGM 的任何信息,但对于 APNS,我发现了这个:developer.apple.com/library/ios/#documentation/…。它似乎是使用二进制协议的流式 TCP 连接。

以上是关于设备如何接收 Android GCM 推送通知?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 GCM 和 java 向多个设备发送推送通知

从 Android gcm 服务器接收重复的推送通知 [关闭]

Android 设备接收无休止的推送通知

GCM 推送通知,其中消息从移动设备推送到 GCM 服务器

如何注册 android 设备以通过 App Engine 后端接收推送通知?

使用 GCM、PHP 和 MySQL 的 Android 推送通知