你的位置:首页 > 软件开发 > 操作系统 > iOS远程推送原理及实现过程

iOS远程推送原理及实现过程

发布时间:2016-05-13 11:00:03
➠更多技术干货请戳:听云博客推送通知,是现在的应用必不可少的功能。那么在 iOS 中,我们是如何实现远程推送的呢?iOS 的远程推送原理又是什么呢?在做 iOS 远程推送时,我们会遇到各种各样的问题。那么首先让我们准备一些做推送需要的东西。我们需要一个付费的苹果开发者账号(免费的 ...

iOS远程推送原理及实现过程

➠更多技术干货请戳:听云博客

推送通知,是现在的应用必不可少的功能。那么在 iOS 中,我们是如何实现远程推送的呢?iOS 的远程推送原理又是什么呢?在做 iOS 远程推送时,我们会遇到各种各样的问题。那么首先让我们准备一些做推送需要的东西。我们需要一个付费的苹果开发者账号(免费的不可以做远程推送),有了开发者账号,我们可以去苹果开发者网站,配置自己所需要的推送的相关证书。然后下载证书,供我们后面使用,详细的证书配置过程,我们下面再说。

首先我们要说说iOS推送通知的基本原理:

苹果的推送服务通知是由自己专门的推送服务器APNs (Apple Push Notification service)来完成的,其过程是 APNs 接收到我们自己的应用服务器发出的被推送的消息,将这条消息推送到指定的 iOS 的设备上,然后再由 iOS设备通知到我们的应用程序,我们将会以通知或者声音的形式收到推送回来的消息。 iOS 远程推送的前提是,装有我们应用程序的 iOS 设备,需要向 APNs 服务器注册,注册成功后,APNs 服务器将会给我们返回一个 devicetoken,我们获取到这个 token 后会将这个 token 发送给我们自己的应用服务器。当我们需要推送消息时,我们的应用服务器将消息按照指定的格式进行打包,然后结合 iOS 设备的 devicetoken 一起发给 APNs 服务器。我们的应用会和 APNs 服务器维持一个基于 TCP 的长连接,APNs 服务器将新消息推送到iOS 设备上,然后在设备屏幕上显示出推送的消息。

设备注册APNs的流程图:

iOS远程推送原理及实现过程

上图完成了如下步骤:

1.Device(设备)连接APNs服务器并携带设备序列号(UUID)

2.连接成功,APNs经过打包和处理产生devicetoken并返回给注册的Device(设备)

3.Device(设备)携带获取的devicetoken发送到我们自己的应用服务器

4.完成需要被推送的Device(设备)在APNs服务器和我们自己的应用服务器的注册

推送过程图:

iOS远程推送原理及实现过程

推送的过程经过如下步骤:

1.首先,我们的设备安装了具有推送功能的应用(应用程序要用代码注册消息推动),我们的 iOS设备在有网络的情况下会连接APNs推送服务器,连接过程中,APNS 服务器会验证devicetoken,连接成功后维持一个基于TCP 的长连接;

2.Provider(我们自己的应用服务器)收到需要被推送的消息并结合被推送的 iOS设备的devicetoken一起打包发送给APNS服务器;

3.APNS服务器将推送信息推送给指定devicetoken的iOS设备;

4.iOS设备收到推送消息后通知我们的应用程序并显示和提示用户(声音、弹出框)

比较直观的流程图:

iOS远程推送原理及实现过程

信息包结构图:

iOS远程推送原理及实现过程

上图显示的这个消息体就是我们的应用服务器(Provider)发送给APNs服务器的消息结构,APNs验证这个结构正确并提取其中的信息后,再将消息推送到指定的iOS设备。这个结构体包括五个部分,第一个部分是命令标示符,第二个部分是我们的devicetoken的长度,第三部分是我们的devicetoken字符串,第四部分是推送消 息体(Payload)的长度,最后一部分也就是真正的消息内容了,里面包含了推送消息的基本信息,比如消息内容,应用Icon右上角显示多少数字以及推送消息到达时所播放的声音等

Payload(消息体)的结构:

 

{   “aps”:{   “alert”:“听云给您发送了新消息”,   “badge”:1,   “sound”:“default”   },}

原标题:iOS远程推送原理及实现过程

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。