即時通訊協議對比


Android中的即時通訊,就是客戶端要與服務器建立長時間的連接,正常情況下Android中請求服務器數據后,連接一般斷開。但即時通訊類的對消息的實時性要求比較高。需要客戶端與服務器建立長時間的連接,這樣,才能保證消息的時實性。

這里寫圖片描述

1、XMPP協議

1、XMPP基於xml,XMPP用TCP傳遞的是xml流。它具有xml的靈活性和擴展性。可以實現服務類實時通訊。

XMPP的核心XML流傳輸協議的定義使得XMPP能夠在一個比以往網絡通信協議更規范的平台上。借助於XML易於解析和閱讀的特性。

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

2、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都可以作為考慮的方案之一。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM