ios推送原理:
准备工作:
1)需要一个付费的苹果开发者账号(免费的不可以做远程推送)。
2)去苹果开发者网站,配置自己所需要的推送的相关证书,然后下载证书,供我们后面使用。-
基本原理:
苹果的推送服务通知是由自己专门的推送服务器APNs (Apple Push Notification service)来完成的,其过程是 APNs 接收到我们自己的应用服务器发出的被推送的消息,将这条消息推送到指定的 iOS 的设备上,然后再由 iOS设备通知到我们的应用程序,我们将会以通知或者声音的形式收到推送回来的消息。
iOS 远程推送的前提是,装有我们应用程序的 iOS 设备,需要向 APNs 服务器注册,注册成功后,APNs 服务器将会给我们返回一个 devicetoken,我们获取到这个 token 后会将这个 token 发送给我们自己的应用服务器。
当我们需要推送消息时,我们的应用服务器将消息按照指定的格式进行打包,然后结合 iOS 设备的 devicetoken 一起发给 APNs 服务器。我们的应用会和 APNs 服务器维持一个基于 TCP 的长连接,APNs 服务器将新消息推送到iOS 设备上,然后在设备屏幕上显示出推送的消息。
-
设备注册APNs
上图完成了如下步骤:
1)Device(设备)连接APNs服务器并携带设备序列号(UUID)
2)连接成功,APNs经过打包和处理产生devicetoken并返回给注册的Device(设备)
3)Device(设备)携带获取的devicetoken发送到我们自己的应用服务器 -
推送过程
推送的过程经过如下步骤:
1)首先,我们的设备安装了具有推送功能的应用(应用程序要用代码注册消息推动),我们的 iOS设备在有网络的情况下会连接APNs推送服务器,连接过程中,APNS 服务器会验证devicetoken,连接成功后维持一个基于TCP 的长连接;
2)Provider(我们自己的应用服务器)收到需要被推送的消息并结合被推送的 iOS设备的devicetoken一起打包发送给APNS服务器;
3)APNS服务器将推送信息推送给指定devicetoken的iOS设备;
4)iOS设备收到推送消息后通知我们的应用程序并显示和提示用户(声音、弹出框)