談如何選擇IM通信系統(tǒng)協(xié)議

? ? 了解完需求执俩,開(kāi)始做方案設(shè)計(jì)徐钠,最開(kāi)始面臨的選擇之一,需要使用什么樣的基礎(chǔ)協(xié)議役首。IM系統(tǒng)也是一樣尝丐,市面上可以被用來(lái)開(kāi)發(fā)IM通訊系統(tǒng)的協(xié)議還是比較多。這里我先一一列舉下:

? ? SIP:

? ? ? ? 用來(lái)幫助提供跨越因特網(wǎng)的電話業(yè)務(wù)衡奥,一般網(wǎng)絡(luò)電話業(yè)務(wù)會(huì)選擇該協(xié)議完成業(yè)務(wù)爹袁。協(xié)議定義了發(fā)起呼叫,對(duì)方振鈴矮固,開(kāi)始接聽(tīng)失息,會(huì)話建立等諸多流程,而且還非常成熟档址。會(huì)話建立完成后盹兢,就可以走數(shù)據(jù)通訊了,可以用它來(lái)完成單聊多人聊天業(yè)務(wù)守伸。

? ? ? ? 優(yōu)點(diǎn):用來(lái)做會(huì)話內(nèi)聊天绎秒,視頻通話,語(yǔ)音通話業(yè)務(wù)還是一個(gè)不錯(cuò)的選擇尼摹。一款標(biāo)準(zhǔn)化的協(xié)議见芹,支持該協(xié)議的開(kāi)源工具將會(huì)很多。

? ? ? ? 缺點(diǎn):如果只是用來(lái)做單聊蠢涝,多人聊天類似的業(yè)務(wù)的話玄呛,因?yàn)榇罅康慕换ト哂啵瑢⒂羞^(guò)多的流量消耗惠赫,移動(dòng)端APP對(duì)于流量和耗電量的損耗是特別看重的把鉴。

? ? ? 私有RPC:

? ? ? ? 一般采用TCP協(xié)議,高層的協(xié)議需要自己定義,包括公用的協(xié)議頭部分和數(shù)據(jù)部分庭砍,

? ? ? ? 優(yōu)點(diǎn):是能根據(jù)業(yè)務(wù)場(chǎng)景進(jìn)行協(xié)議定制场晶,做到節(jié)省流量,減少交互次數(shù)怠缸。

? ? ? ? 缺點(diǎn):如果定義者經(jīng)驗(yàn)不夠的話诗轻,協(xié)議局限性比較強(qiáng),到后期極有可能制約業(yè)務(wù)需求發(fā)展揭北。協(xié)議相關(guān)的SERVER端CLIENT端協(xié)議棧需要自己開(kāi)發(fā)扳炬,這塊需要投入大量的人物力。

? ? ? XMPP:

? ? ? ? XMPP的前身是Jabber搔体,一個(gè)開(kāi)源形式組織產(chǎn)生的網(wǎng)絡(luò)即時(shí)通信協(xié)議恨樟。借助于XML易于解析和閱讀的特性,使得XMPP的協(xié)議能夠非常漂亮疚俱。 XMPP的即時(shí)通訊擴(kuò)展應(yīng)用部分是根據(jù)IETF在這之前對(duì)即時(shí)通訊的一個(gè)抽象定義的劝术,與其他業(yè)已得到廣泛使用的即時(shí)通訊協(xié)議,諸如AIM呆奕,QQ等有功能完整养晋,完善等先進(jìn)性。

? ? ? ? 優(yōu)點(diǎn):業(yè)界使用很廣的協(xié)議梁钾,有大量的開(kāi)源實(shí)現(xiàn)绳泉,能幫助快速的開(kāi)發(fā)高質(zhì)量的應(yīng)用。

? ? ? ? 缺點(diǎn):這個(gè)協(xié)議因?yàn)槭腔赬ML的姆泻,所以對(duì)于流量損耗和網(wǎng)絡(luò)帶寬的要求還是比較高零酪,所以他一直被用于PC電腦的上IM應(yīng)用上面。

? ? ? SYMCML:

? ? ? ? 一個(gè)簡(jiǎn)單麦射、通用的可以用于工業(yè)界方面的數(shù)據(jù)同步協(xié)議蛾娶。使用了該款協(xié)議的有FOXMAIL,

? ? ? ? 優(yōu)點(diǎn):對(duì)于多設(shè)備同時(shí)使用潜秋,能給與很好的支持蛔琅。

? ? ? ? ? 缺點(diǎn):協(xié)議本身就比較復(fù)雜,交互流程比較多峻呛,用戶流量消耗比較大罗售。不過(guò)基于該協(xié)議思想改進(jìn)后的效果還是很好的,如WECHAT钩述,F(xiàn)OXMAIL

? ? ? MQTT:

  IBM提出一種輕量級(jí)的寨躁,適合于低帶寬、不可靠連接牙勘、嵌入式設(shè)備职恳、CPU所禀、內(nèi)存資源緊張,適用于各種受限的環(huán)境的傳輸協(xié)議放钦。最早使用于心臟起搏器的質(zhì)量狀態(tài)監(jiān)控上色徘。

  優(yōu)點(diǎn):

  有明確定義服務(wù)質(zhì)量,對(duì)于不同的質(zhì)量有不同交互流程要求操禀。

  包體流量占用小褂策,對(duì)于每個(gè)字節(jié)都有精確的定義。

  有大量的開(kāi)源實(shí)現(xiàn)颓屑,能幫助快速的開(kāi)發(fā)高質(zhì)量的應(yīng)用斤寂。

  缺點(diǎn):

  協(xié)議本身不是基于IM業(yè)務(wù)設(shè)計(jì)的,一款基于二進(jìn)制的協(xié)議揪惦,對(duì)于字節(jié)定義缺乏可擴(kuò)展性遍搞,有時(shí)需要你在產(chǎn)品需求和標(biāo)準(zhǔn)協(xié)議實(shí)現(xiàn)上做出一些權(quán)衡。

  比如:publish應(yīng)答不能帶payload器腋,如果想通過(guò)應(yīng)答獲得該條消息的系統(tǒng)時(shí)間尾抑,得想其他的辦法。

? ? ? 總結(jié):

? ? ? ? 對(duì)于開(kāi)發(fā)一款基于IM為基礎(chǔ)通訊的APP蒂培,沒(méi)有一層不變的選擇,我們只有根據(jù)產(chǎn)品需求榜苫,項(xiàng)目時(shí)間要求护戳,去選擇一款最合適的協(xié)議來(lái)開(kāi)發(fā)我們的應(yīng)用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垂睬,一起剝皮案震驚了整個(gè)濱河市媳荒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌驹饺,老刑警劉巖钳枕,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異赏壹,居然都是意外死亡鱼炒,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門蝌借,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)昔瞧,“玉大人,你說(shuō)我怎么就攤上這事菩佑∽晕” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵稍坯,是天一觀的道長(zhǎng)酬荞。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么混巧? 我笑而不...
    開(kāi)封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任枪向,我火速辦了婚禮,結(jié)果婚禮上牲剃,老公的妹妹穿的比我還像新娘遣疯。我一直安慰自己,他們只是感情好凿傅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開(kāi)白布缠犀。 她就那樣靜靜地躺著,像睡著了一般聪舒。 火紅的嫁衣襯著肌膚如雪辨液。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天箱残,我揣著相機(jī)與錄音滔迈,去河邊找鬼。 笑死被辑,一個(gè)胖子當(dāng)著我的面吹牛燎悍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盼理,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼谈山,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了宏怔?” 一聲冷哼從身側(cè)響起奏路,我...
    開(kāi)封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎臊诊,沒(méi)想到半個(gè)月后鸽粉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡抓艳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年触机,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片壶硅。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡威兜,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出庐椒,到底是詐尸還是另有隱情椒舵,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布约谈,位于F島的核電站笔宿,受9級(jí)特大地震影響犁钟,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泼橘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一涝动、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧炬灭,春花似錦醋粟、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至鼻吮,卻和暖如春育苟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背椎木。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工违柏, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人香椎。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓漱竖,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親畜伐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子闲孤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,189評(píng)論 25 707
  • 矯情的小魔女又受傷了,三個(gè)人的友誼烤礁,可能是最復(fù)雜的事情了吧。嗯肥照,總是想很多脚仔,一件件事情混合發(fā)酵起來(lái),也是酸氣沖天啊...
    騎著掃把的小魔女閱讀 263評(píng)論 0 0
  • call方法: 語(yǔ)法:call([thisObj[,arg1[, arg2[, [,.argN]]]]])定義...
    書中有涼氣閱讀 489評(píng)論 0 49
  • (前題) 去奈良之前我以為那里只有鹿舆绎。后來(lái)將原本只安排了一天的行程硬生生玩了兩日半,是我所沒(méi)有預(yù)料到的鲤脏。 故事先從...
    Susie910閱讀 1,509評(píng)論 0 0