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

2020-01-15 14:40:32于海丽

推送过程图:

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”
  },
}