MQTT(一)——理論部分

一赏表、什么是MQTT除秀?

  1. 概念:MQTT (Message Queue Telemetry Transport)祝高,消息隊列遙測傳輸協(xié)議,其主要提供了訂閱/發(fā)布兩種消息模式吐葵,更為簡約规揪、輕量,易于使用温峭,特別適合于受限環(huán)境(帶寬低、網絡延遲高凤藏、網絡通信不穩(wěn)定)的消息分發(fā)栗菜,屬于物聯(lián)網(Internet of Thing)的一個標準傳輸協(xié)議桨昙。


    MQTT協(xié)議實現方式.png
  2. 特點:

    1. 特別適合于網絡代價昂貴,帶寬低凹蜂、不可靠的環(huán)境。
    2. 能在處理器和內存資源有限的嵌入式設備中運行狂打。
    3. 使用發(fā)布/訂閱消息模式蝗拿,提供一對多的消息發(fā)布哀托,從而解除應用程序耦合(http協(xié)議是一對一的)。
    4. 使用 TCP/IP 提供網絡連接,主流的MQTT是基于TCP連接進行數據推送的辛慰,但是同樣有基于UDP的版本,叫做MQTT-SN。這兩種版本由于基于不同的連接方式溺职,優(yōu)缺點自然也就各有不同了(使用UDP協(xié)議框架的也有一個是COAP協(xié)議,同樣也是主要應用于物聯(lián)網為受限的環(huán)境設計的)。
    5. 提供Last Will(即遺言機制澜躺,用于通知同一主題下的其他設備發(fā)送遺言的設備已經斷開了連接。) 和 Testament(遺囑機制,功能類似于Last Will朋截。) 特性通知有關各方客戶端異常中斷的機制。
    6. 對負載內容屏蔽的消息傳輸。

二剧蹂、MQTT能做什么?

主要使用在物聯(lián)網方面的,包括機器與機器(M2M)通信和物聯(lián)網(IoT)。

三、MQTT協(xié)議介紹

  1. MQTT協(xié)議的基本結構
    a. 固定頭(Fixed Header):主要是記錄消息的Qos龙宏、消息類型、是否重復發(fā)送(DUP)等徒像。結構如下:


    image.png

    image.png

    b. 可變頭(Variable header):主要記錄協(xié)議名黍特、協(xié)議的版本(一個字節(jié)表示)、用戶名锯蛀、密碼灭衷、主題名(最多支持32,767個字符)、返回值等旁涤。
    c. 負載(Payload): 包含消息的唯一標識符翔曲、在發(fā)布中的有效負載就包含發(fā)布的內容迫像。在訂閱中的有效負載就包括訂閱的列表以及訂閱主題的QoS值。

  2. 服務質量(QoS)
    QoS服務質量:


    image.png

    a. “至多一次”(QoS==0)瞳遍,消息發(fā)布完全依賴底層 TCP/IP 網絡闻妓。會發(fā)生消息丟失或重復。這一級別可用于如下情況掠械,環(huán)境傳感器數據由缆,丟失一次讀記錄無所謂,因為不久后還會有第二次發(fā)送猾蒂。
    image.png

    image.png

    b. “至少一次”(QoS==1)均唉,確保消息到達,但消息重復可能會發(fā)生肚菠。
    image.png

    image.png

    c. “只有一次”(QoS==2)舔箭,確保消息到達一次。這一級別可用于如下情況蚊逢,在計費系統(tǒng)中限嫌,消息重復或丟失會導致不正確的結果。小型傳輸时捌,開銷很信健(固定長度的頭部是 2 字節(jié)),協(xié)議交換最小化奢讨,以降低網絡流量稚叹。
    image.png

    image.png
  3. Topic主題
    a. 主題層級分隔符 “/”: 表示層級關系,比如a/a,a/b/c等拿诸。
    b. 單層通配符 “+”: 訂閱消息時使用扒袖,匹配一層主題如 a/+ 匹配諸如 a/b a/c 但是不能匹配 a/b/c,特別的單獨的+可以匹配所有單層主題
    c. 多層通配符”#”:訂閱消息時使用,匹配零或層主題如 a/# 匹配諸如 a/b a/b/c a ,特別的#單獨使用匹配所有亩码。
    注:使用通配符時需要保證創(chuàng)建的policy里有相應規(guī)則的topic季率,比如a/+(設為只訂閱),如果沒有是無法在連接時通過訂閱a/+匹配到該policy里其他相關的諸如a/b a/c等主題描沟。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末飒泻,一起剝皮案震驚了整個濱河市渴频,隨后出現的幾起案子案腺,更是在濱河造成了極大的恐慌,老刑警劉巖倔监,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件席覆,死亡現場離奇詭異史辙,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門聊倔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晦毙,“玉大人,你說我怎么就攤上這事耙蔑〗嵝颍” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵纵潦,是天一觀的道長徐鹤。 經常有香客問我,道長邀层,這世上最難降的妖魔是什么返敬? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮寥院,結果婚禮上劲赠,老公的妹妹穿的比我還像新娘。我一直安慰自己秸谢,他們只是感情好凛澎,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著估蹄,像睡著了一般塑煎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上臭蚁,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天最铁,我揣著相機與錄音,去河邊找鬼垮兑。 笑死冷尉,一個胖子當著我的面吹牛,可吹牛的內容都是我干的系枪。 我是一名探鬼主播雀哨,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼私爷!你這毒婦竟也來了雾棺?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤当犯,失蹤者是張志新(化名)和其女友劉穎垢村,沒想到半個月后割疾,有當地人在樹林里發(fā)現了一具尸體嚎卫,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了拓诸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片侵佃。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖奠支,靈堂內的尸體忽然破棺而出馋辈,到底是詐尸還是另有隱情,我是刑警寧澤倍谜,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布迈螟,位于F島的核電站,受9級特大地震影響尔崔,放射性物質發(fā)生泄漏答毫。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一季春、第九天 我趴在偏房一處隱蔽的房頂上張望洗搂。 院中可真熱鬧,春花似錦载弄、人聲如沸耘拇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽惫叛。三九已至,卻和暖如春逞刷,著一層夾襖步出監(jiān)牢的瞬間挣棕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工亲桥, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留洛心,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓题篷,卻偏偏與公主長得像词身,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子番枚,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353