一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

快速開發(fā)MQTT(二)初識MQTT

DigCore掘芯嵌入式 ? 2019-01-10 11:15 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

基本介紹

在上篇文章《快速開發(fā)MQTT(一)電子工程師眼中的MQTT》中,對比了串口連接和TCP連接,我們知道實現(xiàn)了連接和數(shù)據(jù)收發(fā)之后,接下來就是要考慮數(shù)據(jù)的封裝、組包的事了。

比如UART傳輸過程中,數(shù)據(jù)被從A設備發(fā)送到B設備時,一般的都做這樣的協(xié)議簡單封裝數(shù)據(jù):“包頭0xAA+兩字節(jié)包長度LEN+1字節(jié)的LRC+數(shù)據(jù)內容”,此時B設備收到數(shù)據(jù)包就進行解析。

這一過程就是應用層面的協(xié)議。

類似的,MQTT也有報文格式,應用程序將數(shù)據(jù)填入報文包中,后通過TCP進行發(fā)送。

為了查看其報文格式,可以利用MQTT客戶端工具MQTT.fx,嘗試向TCP服務器發(fā)起一個連接請求。

TCP服務器繼續(xù)使用上篇文章《快速開發(fā)MQTT(一)電子工程師眼中的MQTT》中提到的SSCOM工具進行模擬。

交互過程如下:

TCP服務器開啟,并偵聽;

MQTT.fx作為客戶端,向TCP服務器發(fā)起請求,發(fā)出的CONNECT報文(Hex):10 1A 00 044D 51 54 54 04 02 00 3C 00 0E 77 77 77 2E 64 69 67 63 6F 72 65 2E 63 6E;

TCP服務器接收到該請求,TCP服務器此刻該回復(Hex):20 02 00 00;

完成連接請求。

以下為交互過程截圖:

配置TCPServer和MQTT.fx客戶端,需要填寫一致的IP地址和端口

MQTT.fx發(fā)起連接時,TCPServer接收到的完整數(shù)據(jù)包內容

TCPServer通過發(fā)送欄,回復數(shù)據(jù)(Hex):2002 00 00

至此,MQTT的連接流程完成,并且MQTT.fx客戶端顯示已連接的狀態(tài)。通過這一模擬的過程,我們能夠清晰認識到MQTT文檔中的報文格式定義已經協(xié)議規(guī)范的定義。

對以上的數(shù)據(jù)分析,我們很容易就和MQTT-3.1.1版本規(guī)范進行對應:

客戶端發(fā)的數(shù)據(jù)是10 1A 00 04 4D 51 54 54 04 02 00 3C 00 0E 77 77 77 2E 64 69 67 63 6F 72 65 2E 63 6E

解析如下:

固定報頭:0x10 1A,即報文類型是1,長度是26個字節(jié)(0x1A)

可變報頭:

0x00 04 4D 51 54 54,此處定義了協(xié)議名,長度是4,協(xié)議名是”MQTT”;

0x04,協(xié)議級別;

0x02,連接標志;

0x00 3C,保持連接,以秒為單位的時間間隔;

有效載荷:

0x00 0E,有效載荷內容的長度

0x77 77 77 2E 64 69 67 63 6F 72 65 2E 63 6E,客戶端標識符www.digcore.cn

TCPServer回復的數(shù)據(jù)是20 0200 00

解析如下:

固定報頭:0x20 02,即報文類型是2,長度是2個字節(jié)(0x02)

可變報頭:0x00 00,即連接確認標志和連接返回碼

在實際開發(fā)過程中,可以利用SSCOM工具作為服務器式驗證自己編寫的MQTT客戶端程序是否正確發(fā)出數(shù)據(jù),另外也可以作為客戶端驗證與MQTT服務器的正確交互。

既然TCP連接后就已經實現(xiàn)了數(shù)據(jù)收發(fā)的功能,為什么應用層還有這么多的通信協(xié)議:HTTP、FTP、MQTT等。

這就有區(qū)別于串口,畢竟串口在通信時是有著導線直接相連,而基于TCP連接的通信,在復雜的計算機網絡中,準確找對一個終端并與之交互數(shù)據(jù),這中間需要做的是靠應用層的協(xié)議進行握手、確認等交互,有著“一回生二回熟三回四回熱炕頭”這么一個啰嗦的過程。

協(xié)議框架

MQTT框架模型非常清晰看到,服務器實現(xiàn)了該協(xié)議的最主要功能,對數(shù)據(jù)和指令進行“轉發(fā)”。

★★★★★推薦文章

《【嵌入式編程】平臺大小端存儲差異解決辦法》

《嵌入式硬件通信接口-使用RingBuffer處理數(shù)據(jù)(二)詳細設計過程》

《嵌入式硬件通信接口-使用RingBuffer處理數(shù)據(jù)(一)》

《快速開發(fā)MQTT(一)電子工程師眼中的MQTT》

《快速開發(fā)MQTT(二)初識MQTT》

《MQTT客戶端搭建-最清晰的MQTT協(xié)議架構》

《MQTT服務端搭建-最快方式驗證自己開發(fā)的客戶端》

★★★★★相似文章

《嵌入式硬件通信接口協(xié)議-UART(五)數(shù)據(jù)包設計與解析》

《嵌入式硬件通信接口協(xié)議-UART(四)設計起止式的應用層協(xié)議》

《嵌入式硬件通信接口協(xié)議-UART(三)快速使用串口及應用》

《嵌入式硬件通信接口協(xié)議-UART(二)不同電氣規(guī)范下的標準》

《嵌入式硬件通信接口協(xié)議-UART(一)協(xié)議基礎》

《嵌入式硬件通信接口協(xié)議-SPI(二)分層架構設計模擬接口》

《嵌入式硬件通信接口協(xié)議-SPI(一)協(xié)議基礎》

★★★★★擴展閱讀

《【硬件電路】AltiumDesigner18規(guī)則檢查含義》

《【硬件電路】N溝道、P溝道MOS管基本原理與應用案例》

文章首發(fā)于同名微信公眾號:DigCore

歡迎關注同名微信公眾號:DigCore,及時獲取最新技術博文。

原文鏈接:https://mp.weixin.qq.com/s/hY3y0EpWLeya3YkWwvU1lQ

(說明:此處的文章從微信公眾號拷貝而來,排版事宜由電子說工作人員編輯,可能存在一定的瑕疵,歡迎點擊原文鏈接閱讀)

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • MQTT
    +關注

    關注

    5

    文章

    682

    瀏覽量

    23720
  • MQTT協(xié)議

    關注

    0

    文章

    99

    瀏覽量

    5951
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MQTT介紹

    一、什么是MQTT 物聯(lián)網(IoT)發(fā)展迅猛,傳感器、網關、云平臺之間如何高效通信成了核心問題。MQTT(Message Queuing Telemetry Transport)作為一種輕量級
    的頭像 發(fā)表于 07-14 09:34 ?201次閱讀
    <b class='flag-5'>MQTT</b>介紹

    精通 MQTT:消息隊列遙測傳輸指南!

    引言MQTT(消息隊列遙測傳輸)是一種輕量級消息協(xié)議,專為低帶寬、高延遲和不可靠的網絡環(huán)境設計。它廣泛應用于物聯(lián)網(IoT)應用、消息系統(tǒng)以及實時數(shù)據(jù)通信領域。本指南深入探討了MQTT的工作原理
    的頭像 發(fā)表于 06-16 16:56 ?484次閱讀
    精通 <b class='flag-5'>MQTT</b>:消息隊列遙測傳輸指南!

    如何在MQTT中發(fā)布和訂閱實體

    MQTT中發(fā)布和訂閱實體(主題)是MQTT通信的核心操作,下面將詳細介紹其原理、步驟以及示例代碼,幫助你全面理解這一過程。 一、MQTT發(fā)布與訂閱的基本概念 發(fā)布(Publish):客戶端將
    的頭像 發(fā)表于 05-20 17:21 ?327次閱讀

    MQTT物聯(lián)網平臺有哪些?有哪些功能?

    (IoT)。關于MQTT物聯(lián)網平臺及其功能,可以歸納如下: MQTT物聯(lián)網平臺 MQTT物聯(lián)網平臺通過提供一種標準化的協(xié)議和平臺,實現(xiàn)了消息的可靠傳輸、設備連接管理、數(shù)據(jù)存儲和分析等功能,方便
    的頭像 發(fā)表于 03-15 14:23 ?832次閱讀
    <b class='flag-5'>MQTT</b>物聯(lián)網平臺有哪些?有哪些功能?

    MQTT測試程序上機實驗

    mqtt_test、paho.mqtt.c.tar.bz2放到Ubuntu上同一個目錄下。
    的頭像 發(fā)表于 02-11 13:35 ?639次閱讀
    <b class='flag-5'>MQTT</b>測試程序上機實驗

    基于MQTT協(xié)議的車云通信設計

    隨著智能汽車的發(fā)展,車云通信的功能場景及數(shù)據(jù)量也逐漸增多,具有輕量化、可靠性等特點的MQTT協(xié)議成為很多OEM車云通信協(xié)議的選擇。本文主要介紹。 什么是MQTT? MQTT(Message
    的頭像 發(fā)表于 01-08 10:24 ?1048次閱讀
    基于<b class='flag-5'>MQTT</b>協(xié)議的車云通信設計

    低功耗4G模組:MQTT通信功能

    ?今天我們來學習使用合宙Air708E開發(fā)板的MQTT通信基本功能。 一、MQTT介紹 MQTT是一種低開銷、低帶寬占用的即時通訊協(xié)議,可以用極少的代碼和帶寬為遠程設備提供實時可靠的消
    的頭像 發(fā)表于 11-01 07:26 ?1152次閱讀

    MQTT調試助手中文版(物聯(lián)網開發(fā)必備)

    MQTT調試助手中文版(物聯(lián)網開發(fā)必備)。?支持模擬設備鏈接各種MQTT云服務器、 ?阿里云、騰訊云、華為云、原子云、onenet等等。
    發(fā)表于 10-12 14:23 ?8次下載

    低功耗4G模組Air780E快速入門:通過MQTT連接實現(xiàn)遠程控制

    ? 今天我們學習Air780E快速入門之通過MQTT連接實現(xiàn)遠程控制,伙伴們,學起來! 一、修改代碼 1.1 準備工具 Air780E開發(fā)板 Air780E開發(fā)板設計資料
    的頭像 發(fā)表于 10-11 14:01 ?1164次閱讀
    低功耗4G模組Air780E<b class='flag-5'>快速</b>入門:通過<b class='flag-5'>MQTT</b>連接實現(xiàn)遠程控制

    MQTT物聯(lián)網云平臺有什么功能

    隨著物聯(lián)網(IoT)技術的迅猛發(fā)展,MQTT(Message Queuing Telemetry Transport)物聯(lián)網云平臺作為一種重要的基礎設施,正在智能制造、智能家居、車聯(lián)網等多個領域發(fā)揮
    的頭像 發(fā)表于 10-09 14:15 ?722次閱讀

    MQTT協(xié)議網關的工作原理及功能特性

    在物聯(lián)網的快速發(fā)展中,MQTT協(xié)議網關作為連接物聯(lián)網設備與消息代理服務器的重要橋梁,扮演著不可或缺的角色。MQTT是一種基于發(fā)布/訂閱模式的輕量級通信協(xié)議,特別適用于低帶寬、不穩(wěn)定網絡環(huán)境下
    的頭像 發(fā)表于 09-18 17:00 ?1202次閱讀
    <b class='flag-5'>MQTT</b>協(xié)議網關的工作原理及功能特性

    MQTT網關:物聯(lián)網中的關鍵橋梁

    MQTT網關:物聯(lián)網中的關鍵橋梁 在物聯(lián)網(IoT)的廣闊世界中,MQTT網關扮演著至關重要的角色。MQTT,全稱為Message Queuing Telemetry Transport,是一種
    的頭像 發(fā)表于 08-22 14:15 ?786次閱讀
    <b class='flag-5'>MQTT</b>網關:物聯(lián)網中的關鍵橋梁

    MQTT應用看這篇!合宙Air780EP_LuatOS_MQTT應用指南

    Air780EP 是合宙的低功耗4G模組之一,支持LuatOS的腳本二次開發(fā),即使是不太懂技術的老板,也能輕松使用 Air780EP開發(fā)產品。 本文應各位大佬邀請,詳細講解了Air780EP 的MQTT的應用教程!
    的頭像 發(fā)表于 08-08 17:13 ?2988次閱讀
    <b class='flag-5'>MQTT</b>應用看這篇!合宙Air780EP_LuatOS_<b class='flag-5'>MQTT</b>應用指南

    PLC轉MQTT網關快速實現(xiàn)PLC轉MQTT協(xié)議

    PLC(可編程邏輯控制器)轉MQTT網關BL10是連接工業(yè)自動化系統(tǒng)與物聯(lián)網平臺的重要設備,那它都有哪些功能特點以及它的應用場景有哪些呢?我們一起來看看。
    的頭像 發(fā)表于 07-31 13:36 ?1297次閱讀
    PLC轉<b class='flag-5'>MQTT</b>網關<b class='flag-5'>快速</b>實現(xiàn)PLC轉<b class='flag-5'>MQTT</b>協(xié)議

    基于MQTT協(xié)議云平臺的Modbus轉MQTT網關

    鋇錸Modbus轉MQTT網關BL100是一款高性能、高性價比的物聯(lián)網網關,它支持將Modbus協(xié)議(包括Modbus RTU和Modbus TCP)的數(shù)據(jù)轉換為MQTT協(xié)議的數(shù)據(jù)格式,從而實現(xiàn)設備
    的頭像 發(fā)表于 07-29 17:59 ?1138次閱讀
    基于<b class='flag-5'>MQTT</b>協(xié)議云平臺的Modbus轉<b class='flag-5'>MQTT</b>網關