iPhone 的 Push(推送通知)功能原理浅析
Posted on 2010-11-02 22:39 BradyChen 阅读(3463) 评论(0) 编辑 收藏
第一部分:Push 原理
(以下绝大多数内容参考自、图片来自 iPhone OS Reference Library)
机制简介
Push 的工作机制可以简单的概括为下图
图中,
Provider 是指某个 iPhone 软件的 Push 服务器。
APNS 是 Apple Push Notication Service(Apple Push 服务器)的缩写,下文统一使用该缩
写。
因 此,整个过程可以分为三个阶段,下面用大家常用的聊天客户端 BeejiveIM 来说明。(BeejiveIM 是
一款支持多账户登录的支持 Push 的 iPhone 聊天客户端,支持 MSN、Google Talk 等)
此时 Provider 为 BeejiveIM 服务器,我们在 BeejiveIM 上登陆 MSN,其实软件是先把登录信息发送到
BeejiveIM 服务器,再通过其服务器来登陆 MSN。因此,当我关 闭了 BeejiveIM,BeejiveIM 服务器
会继续为我登陆 MSN,此时如果有人对我的 MSN 账户发送了消息,那么就会触发 Push。此时:
第 一阶段:BeejiveIM 服务器把要发送的消息、目的 iPhone 的标识打包,发给 APNS。
第二阶段:APNS 在自身的已注册 Push 服务 的 iPhone 列表中,查找有相应标识的 iPhone,并把消息
发到 iPhone。
第三阶段:iPhone 把发来的消息传递给相应的应用程序, 并且按照设定弹出 Push 通知。
Push 认证
许多朋友说 Push 不能用。其中一大部分,就是在认证阶段就出了问题。想了解原因?请细 看:
这里所说的认证机制,实际上包含两层。一层是物理连接上的认证,另一层则才是涉及到 iPhone 设备
令牌的认证。