iOS與Android的消息推送

iOS 系統(tǒng)的推送(APNS,即 Apple Push Notification Service)

依托一個或幾個系統(tǒng)常駐進(jìn)程運(yùn)作绍申,是全局的(接管所有應(yīng)用的消息推送)携添,所以可看作是獨立于應(yīng)用之外,而且是設(shè)備和蘋果服務(wù)器之間的通訊闹蒜,而非應(yīng)用的提供商服務(wù)器芽卿。

  • 例如揭芍,騰訊 QQ 的服務(wù)器(Provider)會給蘋果公司對應(yīng)的服務(wù)器(APNs)發(fā)出通知,然后再中轉(zhuǎn)傳送到你的設(shè)備(Devices)之上卸例。當(dāng)你接收到通知称杨,打開應(yīng)用,才開始從騰訊服務(wù)器接收數(shù)據(jù)币厕,跟你之前看到通知里內(nèi)容一樣列另,但卻是經(jīng)由兩個不同的通道而來。

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

  • 所以阴绢, iOS 的推送,可以不嚴(yán)謹(jǐn)?shù)睦斫鉃椋?br> APNs朝手機(jī)后臺掛的一個 IM 服務(wù)程序發(fā)送的消息艰躺。
    然后呻袭,系統(tǒng)根據(jù)該 IM 消息識別告訴哪個 Apps 具體發(fā)生了什么事。
    然后腺兴,系統(tǒng)分別通知這些 Apps 左电。

    • iOS 自己做個長駐后臺保持連接。所有應(yīng)用,有必要(申請)并且被允許(用戶可以改設(shè)置)的話篓足,可以通過 APNs 中轉(zhuǎn)到達(dá)用戶段誊。

使用久經(jīng)考驗的協(xié)議,技術(shù)風(fēng)險小栈拖。
蘋果勇于承擔(dān)責(zé)任:他需要維護(hù)一個代價不小的服務(wù)器集群连舍,而且要為服務(wù)器的 down 機(jī)負(fù)責(zé)。

選擇低風(fēng)險的技術(shù)方案 Bug 更少涩哟,減輕了用戶的痛苦索赏,這是構(gòu)架師的功勞。
蘋果承擔(dān)責(zé)任贴彼,盡可能的減少了不可控的意外潜腻,保證了用戶體驗。

APNs的優(yōu)點

  • 安全器仗。
    只有登錄過的開發(fā)者可以通過蘋果的服務(wù)器推送

  • 快速砾赔,穩(wěn)定,可靠青灼。
    蘋果掌控推送服務(wù)器和 OS 暴心。

  • 更省電。
    iOS 也為了真正地為用戶體驗負(fù)責(zé)杂拨,不允許應(yīng)用在后臺活動专普,這點也安全。

  • 讓整個系統(tǒng)的體驗更統(tǒng)一和簡單弹沽。
    不會出現(xiàn)殺后臺這種事檀夹。(不用大量 Apps / Apps 的服務(wù)為了推送掛后臺)。
    也不會出現(xiàn) Apps 被殺就收不到推送這種事(早一點的新浪微博 Android 版仍然如此)策橘。

  • 開發(fā)容易炸渡。
    當(dāng)然,開發(fā)者還是要做些事情丽已,比如維護(hù)個服務(wù)器什么的: http://www.ifanr.com/3979 但是復(fù)雜度無疑降低很多了蚌堵。

Android 的推送

Android 的推送:更像是傳統(tǒng)桌面電腦系統(tǒng)做法。每個需要后臺推送的應(yīng)用有各自的單獨后臺進(jìn)程沛婴,才能和各自的服務(wù)器通訊吼畏,交換數(shù)據(jù)。另外其實 Android 也有類似 APNS 的 GCM(Google Cloud Message)嘁灯,屬于開發(fā)者可選泻蚊,非強(qiáng)制。
Apps 掛后臺一直是 Android 引以為豪的特性(雖然我真的不知道是好處多還是壞處多丑婿。性雄。)大家掛后臺等待推送就成為技術(shù)選擇没卸。

當(dāng)然, Google 事后也提供類似蘋果的推送方式GCM了秒旋。

用戶的電池

  • APNs 與 GCM 是類似的技術(shù)實現(xiàn)原理:即系統(tǒng)層有一個常駐的 TCP 長連接约计,一直保持的長連接,即使手機(jī)休眠的時候也在保持的長連接滩褥。

  • 休眠時候都保持在那里的 TCP 長連接病蛉,不會很耗電。這是手機(jī)的設(shè)計來做到的瑰煎。TCP長連接有個心跳的時間铺然,在國外可以很長比如30分鐘,在國內(nèi)則因為網(wǎng)絡(luò)環(huán)境復(fù)雜一般10分鐘酒甸∑墙。客戶端發(fā)起的心跳,會短暫地消耗手機(jī)電能插勤,但在這個心跳間隔期間沽瘦,則消耗電能是很少的。當(dāng)在心跳期間服務(wù)器端有推送信息過來時农尖,客戶端可以收到并做處理析恋。

題外話

Apps 的開發(fā)者不會站在系統(tǒng)層面考慮的。他會假設(shè)其他 Apps 沒有那么“不自覺”盛卡。而 Google 不強(qiáng)制的結(jié)果就是:沒人真正為用戶的電池負(fù)責(zé)助隧。

但是, Google 的方案也并非全是悲劵住:
也因為整個技術(shù)方案非強(qiáng)制并村, Android 的 Apps 在接收到推送后的表現(xiàn)更為靈活。
像 Line 的 Android 版本可以在推送通知的 Popup 上直接回復(fù)滓技, iOS 就需要越獄才能做到了哩牍。
強(qiáng)制和封閉,有時候并非壞事令漂。他意味著做出這個決定的人膝昆,要為此負(fù)責(zé)。

所以洗显,如果說蘋果的推送方案有何創(chuàng)新外潜?

我以為是超越技術(shù),不惜讓公司承擔(dān)更多風(fēng)險和責(zé)任的解決方案挠唆。(類似的還有 BB 的專用網(wǎng)絡(luò), Kindle 的全球 3G )

個人相信嘱吗,擔(dān)負(fù)起這些“額外”的責(zé)任玄组,是值得的滔驾。。俄讹。

只要是為了用戶哆致。
勇于承擔(dān)責(zé)任的公司也更像個可靠的成年人,而不是一個隨意胡鬧的孩子患膛。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末摊阀,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子踪蹬,更是在濱河造成了極大的恐慌胞此,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跃捣,死亡現(xiàn)場離奇詭異漱牵,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)疚漆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門酣胀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人娶聘,你說我怎么就攤上這事闻镶。” “怎么了丸升?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵铆农,是天一觀的道長。 經(jīng)常有香客問我发钝,道長顿涣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任酝豪,我火速辦了婚禮涛碑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘孵淘。我一直安慰自己蒲障,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布瘫证。 她就那樣靜靜地躺著揉阎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪背捌。 梳的紋絲不亂的頭發(fā)上毙籽,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天,我揣著相機(jī)與錄音毡庆,去河邊找鬼坑赡。 笑死烙如,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的毅否。 我是一名探鬼主播亚铁,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼螟加!你這毒婦竟也來了徘溢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤捆探,失蹤者是張志新(化名)和其女友劉穎然爆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體徐许,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡施蜜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了雌隅。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片翻默。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖恰起,靈堂內(nèi)的尸體忽然破棺而出修械,到底是詐尸還是另有隱情,我是刑警寧澤检盼,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布肯污,位于F島的核電站,受9級特大地震影響吨枉,放射性物質(zhì)發(fā)生泄漏蹦渣。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一貌亭、第九天 我趴在偏房一處隱蔽的房頂上張望柬唯。 院中可真熱鬧,春花似錦圃庭、人聲如沸锄奢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽拘央。三九已至,卻和暖如春书在,著一層夾襖步出監(jiān)牢的瞬間灰伟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工儒旬, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留袱箱,地道東北人遏乔。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓义矛,卻偏偏與公主長得像发笔,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子凉翻,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,979評論 2 355

推薦閱讀更多精彩內(nèi)容