前幾天寫了一下MQTT協議實現推送數據傳輸,因此我會不按期的更新一下關注MQTT的知識。服務器
MQTT: MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是IBM開發的一個即時通信協議,有可能成爲物聯網的重要組成部分。該協議支持全部平臺,幾乎能夠把全部聯網物品和外部鏈接起來,被用來當作傳感器和制動器(好比經過Twitter讓房屋聯網)的通訊協議。微信
MQTT特色網絡
MQTT協議是爲大量計算能力有限,且工做在低帶寬、不可靠的網絡的遠程傳感器和控制設備通信而設計的協議,它具備如下主要的幾項特性:測試
1.使用發佈/訂閱消息模式,提供一對多的消息發佈,解除應用程序耦合;ui
2.對負載內容屏蔽的消息傳輸;spa
3.使用 TCP/IP 提供網絡鏈接;開放源代碼
4.有三種消息發佈服務質量:設計
「至多一次」,消息發佈徹底依賴底層 TCP/IP 網絡。會發生消息丟失或重複。這一級別可用於以下狀況,環境傳感器數據,丟失一次讀記錄無所謂,由於不久後還會有第二次發送。
「至少一次」,確保消息到達,但消息重複可能會發生。
「只有一次」,確保消息到達一次。這一級別可用於以下狀況,在計費系統中,消息重複或丟失會致使不正確的結果。
複製代碼
5.小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以下降網絡流量;3d
6.使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制; MQTT特徵原理代理
實現MQTT協議須要:客戶端和服務器端
MQTT協議有三種身份:發佈者(Pushlish)、代理(Broker)、訂閱者(Subscribe)
MQTT的消息分爲:主題(Topic)和負載(payload)兩部分
Topic,能夠理解爲消息的類型,訂閱者Subscribe以後,就會收到該主題的消息內容(payload)。
payload,能夠理解爲消息的內容,是指訂閱者具體的使用內容
##消息類型:
CONNECT:客戶端鏈接到MQTT代理
CONNACK:鏈接確認
PUBLISH:新發布消息
PUBACK:新發布消息確認,是QoS 1給PUBLISH消息的回覆
PUBREC:QoS 2消息流的第一部分,表示消息發佈已記錄
PUBREL:QoS 2消息流的第二部分,表示消息發佈已釋放
PUBCOMP:QoS 2消息流的第三部分,表示消息發佈完成
SUBSCRIBE:客戶端訂閱某個主題
SUBACK:對於SUBSCRIBE消息的確認
UNSUBSCRIBE:客戶端終止訂閱的消息
UNSUBACK:對於UNSUBSCRIBE消息的確認
PINGREQ:心跳
PINGRESP:確認心跳
DISCONNECT:客戶端終止鏈接前優雅地通知MQTT代理
複製代碼
MQTT應用
經過MQTT協議,目前已經擴展出了數十個MQTT服務器端程序,能夠經過PHP,JAVA,Python,C,C#等系統語言來向MQTT發送相關消息。
此外,國內不少企業都普遍使用MQTT做爲Android手機客戶端與服務器端推送消息的協議。其中Sohu,Cmstop手機客戶端中均有使用到MQTT做爲消息推送消息。據Cmstop主要負責消息推送的高級研發工程師李文凱稱,隨着移動互聯網的發展,MQTT因爲開放源代碼,耗電量小等特色,將會在移動消息推送領域會有更多的貢獻,在物聯網領域,傳感器與服務器的通訊,信息的收集,MQTT均可以做爲考慮的方案之一。在將來MQTT會進入到咱們生活的各各方面。
百度雲物接入loT-MQTT測試
一.配置
1.註冊百度雲帳號,打開物接入界面:
3.點擊剛纔建立的實例名稱,並建立設備:
須要注意的是Topic和生成的密鑰必定要記住,若是密鑰丟了的話只能去重置密鑰了。
基本配置就是這些了。
二.鏈接測試
1.點擊鏈接測試:
2.填寫剛纔生成密鑰,以及用戶名稱,而後點擊Connect
3.鏈接以後開始測試,填寫一下你剛纔設置的主題,好比我設置的主題是qzsservice,步驟以下:
歡迎你們關注個人微信公衆號: