iOS_推送原理

iOS 消息推送机制原理与实现
苹果信息推送服务(Apple Push Notification Service),
是由苹果官方提供的消息推送服务。推送形式包括顶部消息条、声音以及badge number(),
有了APNS,应用程序可在任意状态接收到与程序有关的消息
(包括运行状态 not running,foreground以及background),
由于 在大多数情况下,iOS中最多只有一个应用能处于active状态,
所以,APNS为应用的交互提供了极大的便利。

一: 简介
在使 APNS之前,有这么几点需要了解:
1:APNS是免费的。只要有开发者账号便可以申请APNS证书。
2:APNS 是不可靠的,苹果对信息推送的可靠性不做任何保证。
3:APNS对消息的大小是有限制的,总容量不能超过256字节。
清楚了以上三条,各位应该对APNS适用的应用情景有所了解了。

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

图中,Provider(prəˈvaɪdə 提供者)是指某个iPhone软件的 Push服务器,
APNS是Apple Push Notification Service的缩写,是苹果的服务器
notification |ˌnəʊtɪfɪˈkeɪʃn| 接到/发出某通知

上图可以分为三个阶段。
第一阶段:.net/应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。
第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。
第三阶段:iPhone把发来的消息传递给相应的应用程序, 并且按照设定弹出Push通知。

iOS_推送原理_第1张图片

从上图我们可以看到:
1、应用程序注册消息推送。
2、iOS从APNS Server获取device token,应用程序接收device token。
3、应用程序将device token发送给PUSH服务端程序。
4、服务端程序向APNS服务发送消息。
5、APNS服务将消息发送给iPhone应用程序。

无论是iPhone客户端和APNS,还是Provider和APNS,都需要通过证书进行连接。

1 & 2: 用户第一次安装应用并第一次启动时,会弹出对话框提示应用需要开通推送,是否允许,
如果允许,应用会得到一个硬件 token。
有三点需要注意:
第一 ,此token唯一与设备相关,同一设备上不同应用获取的token是一样的;
第二,当应用被卸载,然后重新安装时,确认对话框不会再出现, 自动继承前一次安装的设置信息;
第三,推送设置可以在设置-通知中进性更改。可以选择开启消息 框、声音以及badge number中的一种或多种。
3:应用将收到的token发送到服务端,也就是APNS消息的源头。
4:应用服务器通过token及证书向苹果的消息服务器发送消息。
5:苹果将接收到的消息发送到对应设备上的对应应用。
6:如果应用未处于Active状态(未启动或backgroud),默认设置下,屏幕顶部会弹出消息框,同时有声因提示 ,点击改消息框会进入应用 ,如不点击则应用图标上会有badge number出现。

你可能感兴趣的:(iOS_推送原理)