APNS(Apple Push Notification Service)远程推送原理解析

本文介绍了iOS APP基于client/server模式的工作原理,重点解析了RemoteNotification如何解决APP被杀死后与服务器保持通信的问题,以及推送消息的具体传输路径。文章还详细解释了DeviceToken的作用及其生成过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IOS app大多数都是基于client/server模式开发的,client就是安装在我们设备上的app,server就是远程服务器,主要给我们的app提供数据,因此也被称为Provider.那么问题来了,当app处于杀死状态下,当client与server断开的时候,client如何与server进行通信呢?是的,这时候Remote Notification很好的解决了这个窘境,当客户端与服务端断开连接时,苹果通过APNS与client建立长链接。苹果所提供的一套服务称之为Apple Push Notification server就是我们所谓的APNS。


推送消息传输路径:

我们的设备联网时,都会与苹果的apns服务器建立一个长连接,当Provider推送一条通知的时候,这条通知并不是直接送给了我们的设备,而是先推送到苹果的pans服务器上面,而苹果的apns服务器再通过与设备建立的长连接进而把通知推送到我们的设备上,而当非联网状态的时候,apns服务器会保留推送的最后一条通知,当设备处于联网状态,apns服务器会将其保留的最后一条通知推送到我们的设备上,如果设备长时间处于非联网状态下,那么apns服务器为其保存的最后一条通知也会丢失。Remote notification必须要求设备联网状态下才能收到,并且太频繁的接受远程通知


DeviceToken 的详细说明


当一个app注册接收远程通知时,系统会发送请求到apns服务器,apns服务器收到此请求会根据请求所带的key值生成独一无二的value值,也就是所谓的deviceToken,而后apns会将deviceToken打包成NSData发给对应请求的app,然后app把此deviceToken发送给我们自己的服务器,就是所谓的Provider,给我们的设备推送通知的时候,必须包含此deviceToken

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值