iOS推送原理详解

1.APNS的推送机制

首先我们看一下苹果官方给出的对ios推送机制的解释。如下图


Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器。

上图可以分为三个阶段:

第一阶段:应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS。

第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。

第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。

APNS推送通知的详细工作流程

下面这张图是说明APNS推送通知的详细工作流程:

iOS推送原理详解_第1张图片

根据图片我们可以概括一下:

1、应用程序注册APNS消息推送。

2、iOS从APNS Server获取device token,应用程序接收device token。

3、应用程序将device token发送给程序的PUSH服务端程序。

4、自己后台服务端向APNS服务发送消息。

5、APNS服务将消息发送给iPhone应用程序。

1. 什么是远程消息推送?

APNs:Apple Push Notification server 苹果推送通知服务

苹果的APNs允许设备和苹果的推送通知服务器保持连接,支持开发者推送消息给用户设备对应的应用程序

3. 实现消息推送的步骤

1、 注册:为应用程序申请消息推送服务。此时你的设备会向APNs服务器发送注册请求。

2、 APNs服务器接受请求,并将deviceToken返给你设备上的应用程序

3、客户端应用程序将deviceToken发送给后台服务器程序,后台接收并储存。

4、 后台服务器向APNs服务器发送推送消息

5、 APNs服务器将消息发给deviceToken对应设备上的应用程序

总结下大致流程

1.设备打开某个App后,会生成唯一的一个token,并把这个token上传给我们自己的服务器,我们的服务器有了token,就可以向我们的app推送通知了,这个是前提。但是这个通知并不能直接推送给我们的设备,而是要推送给苹果的服务器。

2.我们的服务器会将token和推送的内容,一起推送给苹果的服务器。

3.苹果服务器会根据token定位到设备,将push推送给设备。

4.设备拿到这个push,就会知道是哪个app。然后就可以将这个通知推送到具体的app。

推送的实现方式: 

手机客户端和APNS服务器之间维持一个TCP/IP长连接,APNS服务器向客户端push消息。 

苹果的推送系统是在系统级别维护一个TCP/IP长连接(所以你需要注册推送证书)

想要收到推送消息,就必须要有后台服务器(下面的1、2)往 苹果的APNs的服务器发请求。 

1、公司自己开发后台服务器程序 

2、 采用第三方的后台服务程序,比如:百度云推送、极光推送、友盟推送

你可能感兴趣的:(iOS推送原理详解)