IM+推送+心跳機制

參考1
參考2
參考3
參考4
參考5

推送:

服務器給客戶端發(fā)送消息
開發(fā)者通過第三方推送服務提供商將信息直接下發(fā)給需要的設備,第三方推送服務提供商與設備建立一條長連接通道苛白,并且將消息路由到APP中呐赡。

推送
推送實現(xiàn)的方式

**(1)長連接: ** 客戶端主動和服務器建立TCP長連接之后, 客戶端定期向服務器發(fā)送心跳包, 有消息的時候, 服務器直接通過這個已經(jīng)建立好的TCP連接通知客戶端退客。
(2)輪詢: 客戶端定期詢問服務器有沒有新的消息, 這樣服務器不用管客戶端的地址是什么, 客戶端來問, 直接告訴它就行.輪詢間隔太長,實時性太差链嘀;輪詢間隔太短萌狂,資源消耗大。
(3)SMS: 服務器在有新消息時給用戶的手機號發(fā)一條特殊的短信, 客戶端攔截短信后發(fā)現(xiàn)是正常短信就放行, 如果是特殊短信就連接服務器取消息怀泊。

心跳包

作用:其實主要是為了防止NAT超時茫藏。其次是探測連接是否斷開。

心跳包和輪詢的區(qū)別

心跳包和輪詢看起來類似, 都是客戶端主動聯(lián)系服務器, 但是區(qū)別很大:
(1)輪詢是為了獲取數(shù)據(jù), 而心跳是為了迸恚活TCP連接务傲。
(2)輪詢得越頻繁, 獲取數(shù)據(jù)就越及時, 心跳的頻繁與否和數(shù)據(jù)是否及時沒有直接關系
(3)輪詢比心跳能耗更高, 因為一次輪詢需要經(jīng)過TCP三次握手, 四次揮手, 單次心跳不需要建立和拆除TCP連接。

NAT耗時

國內(nèi)移動無線網(wǎng)絡運營商在鏈路上一段時間內(nèi)沒有數(shù)據(jù)通訊后, 會淘汰NAT表中的對應項, 造成鏈路中斷枣申。

NAT超時
心跳笔燮希活

心跳一般是指某端(絕大多數(shù)情況下是客戶端)每隔一定時間向?qū)Χ税l(fā)送自定義指令,以判斷雙方是否存活忠藤,因其按照一定間隔發(fā)送挟伙,類似于心跳,故被稱為心跳指令模孩。

TCP的KeepAlive無法?替代應用層心跳奔饫活機制的原因

(1)TCP KeepAlive 的機制其實并不適用于此。Keep Alive 機制開啟后榨咐,TCP 層將在定時時間到后發(fā)送相應的 KeepAlive 探針以確定連接可用性诺祸。一般時間為 7200 s。失敗后重試 10 次祭芦,每次超時時間 75 s筷笨。
(2) TCP KeepAlive 是用于檢測連接的死活

心跳時間間隔選擇:長連接,慢心跳龟劲。

(1)發(fā)送心跳包勢必要先喚醒設備, 然后才能發(fā)送, 如果喚醒設備過于頻繁, 或者直接導致設備無法休眠, 會大量消耗電量
(2)中移動2/3G下, NAT超時時間為5分鐘, 中國電信3G則大于28分鐘, 理想的情況下, 客戶端應當以略小于NAT超時時間的間隔來發(fā)送心跳包胃夏。

影響長連接的壽命的因素
心跳維持長連接的弊端

1、高于正常頻率發(fā)送心跳包來維持長連接昌跌,這樣無疑會帶來信令風暴
2仰禀、這類心跳包頻率很短 造成信令資源的浪費
3、造成手機電量的耗費
信令風暴:網(wǎng)絡受到終端信令的請求超過了網(wǎng)絡各項信令處理的能力蚕愤,引發(fā)擁塞甚至雪崩效應答恶,導致網(wǎng)絡不可用饺蚊,我們稱之為“信令風暴”

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市悬嗓,隨后出現(xiàn)的幾起案子污呼,更是在濱河造成了極大的恐慌,老刑警劉巖包竹,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件燕酷,死亡現(xiàn)場離奇詭異,居然都是意外死亡周瞎,警方通過查閱死者的電腦和手機苗缩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來声诸,“玉大人酱讶,你說我怎么就攤上這事”宋冢” “怎么了浴麻?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長囤攀。 經(jīng)常有香客問我软免,道長,這世上最難降的妖魔是什么焚挠? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任膏萧,我火速辦了婚禮,結果婚禮上蝌衔,老公的妹妹穿的比我還像新娘榛泛。我一直安慰自己,他們只是感情好噩斟,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布曹锨。 她就那樣靜靜地躺著,像睡著了一般剃允。 火紅的嫁衣襯著肌膚如雪沛简。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天斥废,我揣著相機與錄音椒楣,去河邊找鬼。 笑死牡肉,一個胖子當著我的面吹牛捧灰,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播统锤,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼毛俏,長吁一口氣:“原來是場噩夢啊……” “哼炭庙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起煌寇,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤焕蹄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后唧席,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡嘲驾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年淌哟,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辽故。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡徒仓,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出誊垢,到底是詐尸還是另有隱情掉弛,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布喂走,位于F島的核電站殃饿,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏芋肠。R本人自食惡果不足惜乎芳,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望帖池。 院中可真熱鬧奈惑,春花似錦、人聲如沸睡汹。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽囚巴。三九已至原在,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間彤叉,已是汗流浹背晤斩。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留姆坚,地道東北人澳泵。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像兼呵,于是被迫代替她去往敵國和親兔辅。 傳聞我的和親對象是個殘疾皇子腊敲,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

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