關于iOS推送

遠程推送不錯的文章,寫的很詳細

本地推送文章

蘋果推送的原理

APNS 原理
  • app 向APNS發請求獲取 device-token(是由APNs頒發的)
  • APP 向Client 服務器注冊當前用戶的device-token(說明用戶與device-token 映射關系)
  • client 服務器向 APNS服務器發消息(device-token + Payload).
  • APNS 根據 device-token 將消息傳遞給手機,手機在根據bundle ID 傳遞給對應app.

蘋果推送的過程

APNS推送過程

此圖描述了真實消息推送的過程

  • App開發者或者第三方推送平臺的服務器(圖例中的Provider)向APNs發起推送指令的請求,推送指令包含了要下發設備的device-token和要下發的內容payload兩部分。

  • 由APNs根據device-token(device-token是APNs生成頒發的)將payload下發到設備上,再由設備路由給具體的App。

  • APNs要求Provider首先與APNs建立一條長連接,Provider通過長連接可以將單個或者一批device-token發送給APNs,這個過程中,只要有一個device-token是不合法的(錯誤或者失效),那么APNs就會主動斷掉Provider到APNs的長連接.

  • Provider探測到連接斷掉之后,需要重新建立連接,跳過上次失敗的device-token,從下一個device-token接著發送。這個過程循環往復,直至將本次要發送的所有的device-token都推送到APNs,那么這次推送任務就算完成了。

  • 剩下的工作就是APNs將消息下發到具體設備了,APNs將消息下發給設備這個過程,不管是App開發者直接和APNs打交道、亦或是第三方推送服務器和APNs打交道,我們都是無法控制的了.

為什么隔了很久之后再去做推送,發送過程會變得非常慢

  • 因為長時間不發送的話,會有很多設備上的device-token已經無效了,比如:設備卸載了App,或者系統版本升級過導致device-token變化了,或者是其它導致APNs認為device-token不合法的原因??傊?,時間長了,不合法的device-token就會變多。
  • 那么既然失效的device-token是導致發送變慢的主要原因,那么開發者朋友們肯定會想,能不能提前判斷出失效的device-token,直接從發送列表中剔除掉這些失效的token。
  • 其實APNs是提供這樣的feedback接口的,調用這個接口會得到一批失效的device-token列表。那么是不是在一次發送之前去調用一下這個接口,獲取到無效的device-token,在發送的過程中剔除掉這些無效的device-token就能加快發送速度呢?
  • 其實不然,因為feedback接口是一個后驗的接口,即只有一次推送任務結束之后,APNs才會把該次失效的device-token更新到feedback接口的返回結果里面
  • 如果你在一次推送任務前調用feedback接口,那么得到的失效device-token是基于上一次推送任務的結果的,兩次推送任務之間發生的失效的device-token,是無法提前獲取到的,只能等當次推送任務結束之后,才可以去獲取新的失效token列表。

原文參考品:https://www.zhihu.com/question/33888020/answer/59658011

iOS和Android后臺實時消息推送的原理和區別

iOS的實時消息推送

iOS 系統的推送(APNS)依托一個或幾個系統常駐進程運作,是全局的(接管所有應用的消息推送),所以可看作是獨立于應用之外,而且是設備和蘋果服務器之間的通訊,而非應用的提供商服務器。

你的例子里面,騰訊 QQ 的服務器(Provider)會給蘋果公司對應的服務器(APNs)發出通知,然后再中轉傳送到你的設備(Devices)之上。當你接收到通知,打開應用,才開始從騰訊服務器接收數據,跟你之前看到通知里內容一樣,但卻是經由兩個不同的通道而來。

  • Android的實時消息推送

而 Android,就不同,更像是傳統桌面電腦系統做法。每個需要后臺推送的應用有各自的單獨后臺進程,才能和各自的服務器通訊,交換數據。另外其實 Android 也有類似 APNS 的 GCM(Google Cloud Message),屬于開發者可選,非強制。

Android實時消息推送

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,763評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,238評論 3 428
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,823評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,604評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,339評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,713評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,712評論 3 445
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,893評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,448評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,201評論 3 357
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,397評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,944評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,631評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,033評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,321評論 1 293
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,128評論 3 398
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,347評論 2 377

推薦閱讀更多精彩內容