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。
參考資料