Push的工作机制可以简单的概括为下图
图中,Provider是指某个iPhone软件的Push服务器,这篇文章我将使用.net作为Provider。
APNS是Apple Push Notification Service(Apple Push服务器)的缩写,是苹果的服务器。
上图可以分为三个阶段:
第一阶段:.net应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。
第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。
第三阶段:iPhone把发来的消息传递给相应的应用程序, 并且按照设定弹出Push通知。
首先是应用程序注册消息推送。IOS跟APNS Server要deviceToken。应用程序接受deviceToken。应用程序将deviceToken发送给PUSH服务端程序。服务端程序向APNS服务发送消息。APNS服务将消息发送给iPhone应用程序。
无论是iPhone客户端跟APNS,还是Provider和APNS都需要通过证书进行连接的。下面我介绍一下几种用到的证书。
iOS 在系统级别有一个推送服务程序使用 5223 端口。使用这个端口的协议源于 Jabber 后来发展为 XMPP ,被用于 Gtalk 等 IM 软件中。
iOS 的推送,可以理解为:苹果服务器朝手机后台挂的一个IM服务程序发送的消息。然后,系统根据该IM消息识别告诉哪个Apps具体发生了什么事。最后,系统分别通知这些 Apps。