APNS

Posted 尘恍若梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APNS相关的知识,希望对你有一定的参考价值。

前言:现在第三方推送也很多 ,比如极光,融云,信鸽,其原理也是相同利用APNS推送机制 。

自己做推送的好处:,1.避免device token被第三方泄露,保护手机设备信息,2.第三方部分开始收费,一些免费的以后谁又知道呢 ,不如自己创建,除了后台麻烦点,需要数据库来存储token相关字段(后台配置部分在最后更新添加),前端实现起来并不复杂 。 对于ios8.0以后,原生推送实时性很好,也解决了第三方SDK占用存储顾虑,何乐不为呢!

 

1.APNS的推送机制

APNs(Apple Push Notification service)是远程推送功能的核心。

deviceToken是设备的一个标识符,属于你这款APP装在你这个设备上的标识符,即每个APP在每一个不同的设备上都有着不同的deviceToekn,通过注册远程推送服务,APNs会返回给你的APP的deviceToken。

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

技术分享图片
 

Provider就是我们自己程序的后台服务器,APNS是Apple Push Notification Service的缩写,也就是苹果的推送服务器。
上图可以分为三个阶段:
第一阶段:应用程序的服务器端把要发送的消息、目的iPhone的标识打包,发给APNS。
第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。
第三阶段:iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。

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

技术分享图片
 

根据图片我们可以概括一下:
1、应用程序注册APNS消息推送。
2、iOS从APNS Server获取devicetoken,应用程序接收device token。
3、应用程序将device token发送给程序的PUSH服务端程序。
4、服务端程序向APNS服务发送消息。
5、APNS服务将消息发送给iPhone应用程序。

准备工作
首先要有一台苹果的设备,模拟器是不支持推送的,所以你需要一台iphone,ipod touch或者ipad。

我们的客户端与苹果服务器之间和我们自己的服务器与苹果服务器之间都需要证书来进行链接。下面我们来开始进入证书的制作过程。














以上是关于APNS的主要内容,如果未能解决你的问题,请参考以下文章