iOS-Push的原理

Push的工作機(jī)制可以簡單的概括為下圖


圖中,Provider是指某個(gè)iPhone軟件的Push服務(wù)器,這篇文章我將使用.net作為Provider。

APNS是Apple Push Notification Service(Apple Push服務(wù)器)的縮寫,是蘋果的服務(wù)器。

上圖可以分為三個(gè)階段:

第一階段:.net應(yīng)用程序把要發(fā)送的消息、目的iPhone的標(biāo)識打包,發(fā)給APNS。

第二階段:APNS在自身的已注冊Push服務(wù)的iPhone列表中,查找有相應(yīng)標(biāo)識的iPhone,并把消息發(fā)到iPhone。

第三階段:iPhone把發(fā)來的消息傳遞給相應(yīng)的應(yīng)用程序, 并且按照設(shè)定彈出Push通知。


首先是應(yīng)用程序注冊消息推送。IOS跟APNS Server要deviceToken。應(yīng)用程序接受deviceToken。應(yīng)用程序?qū)eviceToken發(fā)送給PUSH服務(wù)端程序。服務(wù)端程序向APNS服務(wù)發(fā)送消息。APNS服務(wù)將消息發(fā)送給iPhone應(yīng)用程序。

無論是iPhone客戶端跟APNS,還是Provider和APNS都需要通過證書進(jìn)行連接的。下面我介紹一下幾種用到的證書。

iOS 在系統(tǒng)級別有一個(gè)推送服務(wù)程序使用 5223 端口。使用這個(gè)端口的協(xié)議源于 Jabber 后來發(fā)展為 XMPP ,被用于 Gtalk 等 IM 軟件中。

iOS 的推送,可以理解為:蘋果服務(wù)器朝手機(jī)后臺掛的一個(gè)IM服務(wù)程序發(fā)送的消息。然后,系統(tǒng)根據(jù)該IM消息識別告訴哪個(gè)Apps具體發(fā)生了什么事。最后,系統(tǒng)分別通知這些 Apps。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前言 我們在實(shí)現(xiàn)推送功能的時(shí)候,更需要了解下推送的原理機(jī)制,這樣我們在發(fā)現(xiàn)問題時(shí)候才好定位到問題的解決辦法。 推送...
    進(jìn)無盡閱讀 3,985評論 0 5
  • 極光推送: 1.JPush當(dāng)前版本是1.8.2,其SDK的開發(fā)除了正常的功能完善和擴(kuò)展外也緊隨蘋果官方的步伐,SD...
    Isspace閱讀 6,874評論 10 16
  • 推送通知,是現(xiàn)在的應(yīng)用必不可少的功能。那么在 iOS 中,我們是如何實(shí)現(xiàn)遠(yuǎn)程推送的呢?iOS 的遠(yuǎn)程推送原理又是什...
    皮皮瑞閱讀 1,335評論 0 3
  • 1、OC中創(chuàng)建線程的方法是什么?如果指定在主線程中執(zhí)行代碼?如何延時(shí)執(zhí)行代碼?!倦y度系數(shù)★★】 1)創(chuàng)建線程的方法...
    木旁_G閱讀 2,080評論 2 16
  • 方法一: 找到.gitconfig,添加如下配置。(或者用git config --global命令) 方法二: ...
    iYeso閱讀 3,309評論 0 7

友情鏈接更多精彩內(nèi)容