14 - 蘋果遠程推送原理

APNs是遠程推送通知服務,就是從遠程服務器推送給客戶端的通知(須要聯網)服務器

首先,傳統的獲取數據的方法存在侷限性:只要用戶關閉了app,就沒法和app的服務器進行溝通,沒法從服務器上得到最新的數據內容app

APNs是爲了蘋果爲了解決用戶不能即時從服務器得到數據的解決方案iphone

不管打開或者關閉app,只要是聯網了,均可以接收到服務器推送的遠程通知
 
全部的蘋果設備,在聯網的狀態下,都會與蘋果服務器創建長鏈接——即只要聯網了,就一直創建鏈接———長鏈接的做用,如時間校準,系統升級,查找個人iphone等
 
APNs的原理——以 爲陌陌推送消息爲例
 
A給B發送一條消息,此時B不在線,如何將消息推送到B的手機?  
 
首先,陌陌的的服務器只能在用戶沒有退出的前提下才能夠和用戶交互,用戶接受到別人發送的消息,即時顯示到本身的app.若是用戶的app關掉,那隻能經過蘋果的APNs推送給用戶
 
大致的流程----B發送的消息首先發送到默默的聊天服務器—陌陌拿到聊天數據而後發送給蘋果的APNs服務器,APNs服務器負責將消息推送到用戶的手機上
陌陌的服務器中保存着每一個用戶的帳戶信息,設備的惟一標識
APNs如何推送到具體到某個手機的具體的某個APP?—————
APNs若是想要推送一條消息給某個用戶的具體某個APP,須要知道
1.哪一臺設備(用戶設備的惟一標識UIID)——陌陌服務器從客戶端獲取的,而且傳給APNs的.————注意UUID是比較隱私的東西,陌陌服務器保存的是加密的UUID(本身看不到,只有蘋果才能夠解密)
2.這臺設備的哪個APP((陌陌,仍是qq,給哪個APP推送),應用的惟一標識.
注意:UUID和APPID經過調用蘋果的API,蘋果對其進行加密以後,而後再給陌陌服務器,陌陌服務器保存的是DeviceToken,只有蘋果才能夠解密用戶的UUID.
蘋果解析DeviceToken.解密出UUID和APPID.推送給用戶
DeviceToken的數量取決於用戶所裝應用的數量
 
 
 
 
相關文章
相關標籤/搜索