iOS推送系列之Push的工作原理
要理解Push的工作原理,我们必须要知道几个知识点。
- 设备是如何和APNs保持连接的。
- APNs如何识别需要推送的设备。
APNs可以推送给设备Push消息,是因为设备(iPhone、iPad)和APNs有一个长连接的通道。
iOS的Push通道是一个独立的长连接通道,并且是唯一的一个通道,由iOS系统独立维护。也就是说每一个手机系统,每次开机后,手机后台就会发出一个长连接,连接到苹果服务器(APNs)。
当APNs收到新的Push通知的时候就会把通知推送给应用设备。
通过官方的原理图四个身份
- Provider:我们的服务器sever
- APNs:苹果服务器
- Device(设备):iPhone、iPad
- Client App:客户端的app
Tip:苹果可以省电省流量,原因之一有Push网络通道是唯一的一个,并且苹果公司来维护。
总结下大致流程
- 设备打开某个App后,会生成唯一的一个token,并把这个token上传给我们自己的服务器,我们的服务器有了token,就可以向我们的app推送通知了,这个是前提。但是这个通知并不能直接推送给我们的设备,而是要推送给苹果的服务器。
- 我们的服务器会将token和推送的内容,一起推送给苹果的服务器。
- 苹果服务器会根据token定位到设备,将push推送给设备。
- 设备拿到这个push,就会知道是哪个app。然后就可以将这个通知推送到具体的app。
参考资料