即時通信協議對比

Android中的即時通信,就是客戶端要與服務器創建長時間的鏈接,正常狀況下Android中請求服務器數據後,鏈接通常斷開。但即時通信類的對消息的實時性要求比較高。須要客戶端與服務器創建長時間的鏈接,這樣,才能保證消息的時實性。

這裏寫圖片描述

一、XMPP協議

一、XMPP基於xml,XMPP用TCP傳遞的是xml流。它具備xml的靈活性和擴展性。能夠實現服務類實時通信。android

XMPP的核心XML流傳輸協議的定義使得XMPP可以在一個比以往網絡通訊協議更規範的平臺上。藉助於XML易於解析和閱讀的特性。安全

XMPP核心協議通訊的基本模式就是先創建一個stream,而後協商一堆安全之類的東西,中間通訊過程就是客戶端發送XML Stanza,一個接一個的。服務器根據客戶端發送的信息以及程序的邏輯,發送XML Stanza給客戶端。可是這個過程並非一問一答的,任什麼時候候都有可能從一方發信給另一方。通訊的最後階段是關閉流,關閉TCP/IP鏈接。服務器

二、MQTT協議

這裏寫圖片描述
MQTT(Message Queuing Telemetry Transport)是IBM開發的一個即時通信的協議。 
MQTT的特色: 
1)、使用發佈/訂閱消息模式,提供一對多的消息發佈,解除應用程序耦合; 
2)、對負載內容屏蔽的消息傳輸; 
3)、使用 TCP/IP 提供網絡鏈接; 
4)、有三種消息發佈服務質量: 
「至多一次」,消息發佈徹底依賴底層 TCP/IP 網絡。會發生消息丟失或重複。這一級別可用於以下狀況,環境傳感器數據,丟失一次讀記錄無所謂,由於不久後還會有第二次發送。 
「至少一次」,確保消息到達,但消息重複可能會發生。 
「只有一次」,確保消息到達一次。這一級別可用於以下狀況,在計費系統中,消息重複或丟失會致使不正確的結果。 
5)、小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以下降網絡流量;網絡

MQTT很是適合做爲Android手機客戶端與服務器推送消息。其中Sohu,Cmstop手機客戶端中均有使用到MQTT做爲消息推送消息。據Cmstop主要負責消息推送的高級研發工程師李文凱稱,隨着移動互聯網的發展,MQTT因爲開放源代碼,耗電量小等特色,將會在移動消息推送領域會有更多的貢獻,在物聯網領域,傳感器與服務器的通訊,信息的收集,MQTT均可以做爲考慮的方案之一。 ui

相關文章
相關標籤/搜索