WEB开发网
开发学院手机开发iPhone 开发 iPhone的Push(推送通知)功能原理浅析 阅读

iPhone的Push(推送通知)功能原理浅析

 2010-06-19 18:53:00 来源:WEB开发网   
核心提示:转自:http://xiaolife.com/wordpress/an-introduce-to-iphone-push/第一部分:Push原理(以下绝大多数内容参考自、图片来自iPhone OS Reference Library)机制简介Push 的工作机制可以简单的概括为下图图中,Provider是指某个iPho

转自:http://xiaolife.com/wordpress/an-introduce-to-iphone-push/

第一部分:Push原理

(以下绝大多数内容参考自、图片来自iPhone OS Reference Library)

机制简介

Push 的工作机制可以简单的概括为下图

图中,

Provider是指某个iPhone软件的Push服务器。

APNS 是Apple Push Notification 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 设备令牌的认证。

物理连接上的认证:SSL/TLS链接

(如果你了解TLS,那么这里我几乎无需介绍。)

iPhone在开启Push的时候,会连接 APNS建立一条TLS加密链接。每一台正常的iPhone都有一个独有的设备证书,而APNS也有一个服务器证书。两者建立的时候,会验证彼此的证书有 效性。

TLS链接一旦建立,在没有数据的情况下,只需要每隔15分钟进行一次保活的握手,因此几乎不占流量。而 一旦因为意外原因导致链接中断,iPhone会不断重新尝试建立TLS链接,直到成功。

1 2 3 4 5  下一页

Tags:iPhone Push 推送

编辑录入:coldstar [复制链接] [打 印]
赞助商链接