2012-09-06 76 views
3

最近我一直在挖掘android推送通知。我想,我了解整体架构和消息流。设备如何接收Android GCM推送通知?

我想它是这样的:

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

该航线的唯一神秘的部分之间[GCM]和[设备]。

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

我读过一些地方,可能设备保持打开连接到GCM。如果是这种情况,什么样的连接打开?

+0

我认为它使用[Gtalk连接](http://jon.oberheide.org/blog/2010/06/28/a-peek-inside-the-gtalkservice-connection)。不确定的ios,但黑莓推动作品就像短信 – nandeesh

+0

http://devblog.blackberry.com/2010/03/introducing-blackberry-push-services-to-developers/ – Signare

+2

在黑莓手机:'[自己的服务器] - > [推代理服务器网关(RIM BIS或企业BES)] - > [运营商无线网络] - > [设备] - > [监听应用]'。更多信息在这里:http://docs.blackberry.com/en/developers/subcategories/?userType=21&category=Push+Service –

回答

2

关于CGM有很多关于Android Developers center的信息。 设备保持连接对CGM开放(我认为是IP)。如果服务器和设备之间没有连接,CGM将存储传入的消息以便稍后传送它们。

iOS推送技术保持APNS(苹果推送通知服务)和设备(参见:wiki)之间的IP连接打开。所以它可能与GCM相同。

+0

哦,是的,谢谢。 Wiki正是这样说的。我只是想知道,这是什么样的IP连接?一些TCP Socket连接?我想,保持开放的连接可能会导致电池问题..? –

+0

我没有找到关于CGM的任何信息,但对于APNS,我发现这个:http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/CommunicatingWIthAPS/CommunicatingWIthAPS.html#//apple_ref/DOC/UID/TP40008194-CH101-SW3。它似乎是使用二进制协议的流式TCP连接。 –

+1

GCM和APNS:XMPP – vPJ