APP推送系統(tǒng)工作原理

搜狗截圖20160106143135.png

一、傳統(tǒng)APP架構(gòu)下的信息傳送

APP主動(dòng)向服務(wù)器請(qǐng)求數(shù)據(jù)膀斋,服務(wù)器被動(dòng)的提供數(shù)據(jù)。

步驟如下:

搜狗截圖20160106143006.png

然而痹雅,如果此時(shí)服務(wù)器又有了新的新聞仰担,在用戶沒(méi)有主動(dòng)刷新的情況下,服務(wù)器是不會(huì)主動(dòng)推送給用戶的绩社。

推送解決了這個(gè)困境摔蓝,它讓服務(wù)器主動(dòng)連接APP赂苗,通知APP有了新的新聞,可以再請(qǐng)求贮尉。收到推送的APP(即使已關(guān)閉)又去服務(wù)器請(qǐng)求最新的新聞拌滋,用戶就能看到了。

二猜谚、實(shí)現(xiàn)推送的方法

實(shí)現(xiàn)一個(gè)推送系統(tǒng)需要服務(wù)器端和終端的配合败砂。

方法一:輪詢

即不停地向服務(wù)器發(fā)送請(qǐng)求(既然不知道什么時(shí)候會(huì)發(fā)生,那就一遍一遍的問(wèn)吧)魏铅。

缺點(diǎn):手機(jī)消耗電量吠卷、流量大;服務(wù)器也要處理大量的請(qǐng)求沦零,壓力大祭隔。

方法二:APP和服務(wù)器建立長(zhǎng)時(shí)間連接通道

通過(guò)這個(gè)通道,APP可以向服務(wù)器請(qǐng)求數(shù)據(jù)路操,服務(wù)器也可以向APP發(fā)送數(shù)據(jù)疾渴。

android系統(tǒng)中,如果APP被關(guān)閉屯仗,APP可以啟動(dòng)一個(gè)后臺(tái)服務(wù)來(lái)維持通道繼續(xù)運(yùn)行搞坝。(ios的解決方法見(jiàn)下)

如何維護(hù)這個(gè)長(zhǎng)時(shí)間連接的通道?

APP會(huì)每隔段時(shí)間向服務(wù)器報(bào)告自己還活著魁袜,服務(wù)器收到后桩撮,即可知道這個(gè)通道可以繼續(xù)使用。(代價(jià)是增加電量消耗)

如果手機(jī)中裝了多個(gè)帶有推送功能的APP峰弹,如何解決多個(gè)通道的問(wèn)題店量?

android解決方案:GCM(系統(tǒng)提供)、開(kāi)發(fā)各自的專用通道(國(guó)內(nèi)方法)

Android系統(tǒng)提供的 GCM 只能在 Android2.2 以上才能使用鞠呈,3.0 以下必須要安裝 Googleplay 并登陸了 Google 賬號(hào)才能支持融师。而國(guó)內(nèi)發(fā)行的手機(jī)大多是閹割掉了 google 服務(wù)的。

因此蚁吝,對(duì)于 Android 系統(tǒng)來(lái)說(shuō)旱爆,各家 app 只能開(kāi)發(fā)自己的專用長(zhǎng)連接通道了。然而這時(shí)候他們遇到了 app 的天敵:管家和衛(wèi)士們窘茁。前文說(shuō)了怀伦,app 想要及時(shí)收到服務(wù)器推送的消息,關(guān)鍵在于自己與服務(wù)器的長(zhǎng)連接通道不被關(guān)閉山林,也就是自己的后臺(tái)服務(wù)可以一直在后臺(tái)運(yùn)行房待,而管家和衛(wèi)士們的一鍵清理功能就是專治這種 “毒瘤” 的。道高一尺魔高一丈,app 在與管家和斗士們的長(zhǎng)期斗爭(zhēng)中吴攒,總結(jié)了一系列躲避被清理掉的方法,什么定時(shí)自啟能力砂蔽、什么相互喚醒洼怔、什么前臺(tái)進(jìn)程等等。

IOS解決方案:APNS

ios開(kāi)通了一條系統(tǒng)級(jí)別的長(zhǎng)連接通道左驾,通道的一端是手機(jī)的所有APP镣隶,另一端是蘋(píng)果的服務(wù)器。
APP的服務(wù)器如果有消息需要推送诡右,先把消息發(fā)送到蘋(píng)果服務(wù)器上安岂,再利用蘋(píng)果的服務(wù)器通過(guò)長(zhǎng)連接通道發(fā)送到用戶手機(jī),最后通知具體的APP帆吻。這樣域那,即使安裝了100款A(yù)PP,也只需要向一條通道里發(fā)送推送猜煮。

apns.png

非原創(chuàng)次员,總結(jié)自微信文章。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末王带,一起剝皮案震驚了整個(gè)濱河市淑蔚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌愕撰,老刑警劉巖刹衫,帶你破解...
    沈念sama閱讀 218,284評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異搞挣,居然都是意外死亡带迟,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)囱桨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)邮旷,“玉大人,你說(shuō)我怎么就攤上這事蝇摸∩艏纾” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,614評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵貌夕,是天一觀的道長(zhǎng)律歼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)啡专,這世上最難降的妖魔是什么险毁? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,671評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上畔况,老公的妹妹穿的比我還像新娘适荣。我一直安慰自己吠式,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,699評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著湾笛,像睡著了一般焕参。 火紅的嫁衣襯著肌膚如雪运嗜。 梳的紋絲不亂的頭發(fā)上从媚,一...
    開(kāi)封第一講書(shū)人閱讀 51,562評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音橡羞,去河邊找鬼眯停。 笑死,一個(gè)胖子當(dāng)著我的面吹牛卿泽,可吹牛的內(nèi)容都是我干的莺债。 我是一名探鬼主播,決...
    沈念sama閱讀 40,309評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼签夭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼九府!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起覆致,我...
    開(kāi)封第一講書(shū)人閱讀 39,223評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤侄旬,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后煌妈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體儡羔,經(jīng)...
    沈念sama閱讀 45,668評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,859評(píng)論 3 336
  • 正文 我和宋清朗相戀三年璧诵,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了汰蜘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,981評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡之宿,死狀恐怖族操,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情比被,我是刑警寧澤色难,帶...
    沈念sama閱讀 35,705評(píng)論 5 347
  • 正文 年R本政府宣布,位于F島的核電站等缀,受9級(jí)特大地震影響枷莉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜尺迂,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,310評(píng)論 3 330
  • 文/蒙蒙 一笤妙、第九天 我趴在偏房一處隱蔽的房頂上張望冒掌。 院中可真熱鬧,春花似錦蹲盘、人聲如沸股毫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,904評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)铃诬。三九已至,卻和暖如春薄嫡,著一層夾襖步出監(jiān)牢的瞬間氧急,已是汗流浹背颗胡。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,023評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工毫深, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人毒姨。 一個(gè)月前我還...
    沈念sama閱讀 48,146評(píng)論 3 370
  • 正文 我出身青樓哑蔫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親弧呐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子闸迷,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,933評(píng)論 2 355

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,139評(píng)論 25 707
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)俘枫,斷路器腥沽,智...
    卡卡羅2017閱讀 134,657評(píng)論 18 139
  • 極光推送: 1.JPush當(dāng)前版本是1.8.2,其SDK的開(kāi)發(fā)除了正常的功能完善和擴(kuò)展外也緊隨蘋(píng)果官方的步伐鸠蚪,SD...
    Isspace閱讀 6,719評(píng)論 10 16
  • 轉(zhuǎn)自《人人都是產(chǎn)品經(jīng)理》茅信,原文鏈接:寫(xiě)給產(chǎn)品經(jīng)理技術(shù)書(shū) 產(chǎn)品經(jīng)理有三大領(lǐng)域的技術(shù)是需要去攻克的盾舌,分別是:客戶端相關(guān)...
    游社長(zhǎng)閱讀 4,145評(píng)論 4 79
  • 結(jié)發(fā)為夫妻,恩愛(ài)兩不疑蘸鲸, 此情天地證妖谴,百年以為期。 姻緣三生定酌摇,福祿九世余膝舅, 與君結(jié)同心,白首不相離窑多。 情深何所起...
    蘇流明澄閱讀 319評(píng)論 0 6