一、XMPP基於xml,XMPP用TCP傳遞的是xml流。它具備xml的靈活性和擴展性。能夠實現服務類實時通信。android
XMPP的核心XML流傳輸協議的定義使得XMPP可以在一個比以往網絡通訊協議更規範的平臺上。藉助於XML易於解析和閱讀的特性。安全
XMPP核心協議通訊的基本模式就是先創建一個stream,而後協商一堆安全之類的東西,中間通訊過程就是客戶端發送XML Stanza,一個接一個的。服務器根據客戶端發送的信息以及程序的邏輯,發送XML Stanza給客戶端。可是這個過程並非一問一答的,任什麼時候候都有可能從一方發信給另一方。通訊的最後階段是關閉流,關閉TCP/IP鏈接。服務器
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