国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

鴻蒙MQTT協(xié)議開(kāi)發(fā)入門(mén)

系統(tǒng)
MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的"輕量級(jí)"通訊協(xié)議。

[[352395]]

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū) 

https://harmonyos.51cto.com/#zz

一、 簡(jiǎn)述

MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的"輕量級(jí)"通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。MQTT最大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。作為一種低開(kāi)銷、低帶寬占用的即時(shí)通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有較廣泛的應(yīng)用。

MQTT是一個(gè)基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議是輕量、簡(jiǎn)單、開(kāi)放和易于實(shí)現(xiàn)的,這些特點(diǎn)使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機(jī)器與機(jī)器(M2M)通信和物聯(lián)網(wǎng)(IoT)。其在,通過(guò)衛(wèi)星鏈路通信傳感器、偶爾撥號(hào)的醫(yī)療設(shè)備、智能家居、及一些小型化設(shè)備中已廣泛使用。

二、設(shè)計(jì)規(guī)范

由于物聯(lián)網(wǎng)的環(huán)境是非常特別的,所以MQTT遵循以下設(shè)計(jì)原則:

(1)精簡(jiǎn),不添加可有可無(wú)的功能;

(2)發(fā)布/訂閱(Pub/Sub)模式,方便消息在傳感器之間傳遞;

(3)允許用戶動(dòng)態(tài)創(chuàng)建主題,零運(yùn)維成本;

(4)把傳輸量降到最低以提高傳輸效率;

(5)把低帶寬、高延遲、不穩(wěn)定的網(wǎng)絡(luò)等因素考慮在內(nèi);

(6)支持連續(xù)的會(huì)話控制;

(7)理解客戶端計(jì)算能力可能很低;

(8)提供服務(wù)質(zhì)量管理;

(9)假設(shè)數(shù)據(jù)不可知,不強(qiáng)求傳輸數(shù)據(jù)的類型與格式,保持靈活性。

三、主要特性

MQTT協(xié)議工作在低帶寬、不可靠的網(wǎng)絡(luò)的遠(yuǎn)程傳感器和控制設(shè)備通訊而設(shè)計(jì)的協(xié)議,它具有以下主要的幾項(xiàng)特性:

(1)使用發(fā)布/訂閱消息模式,提供一對(duì)多的消息發(fā)布,解除應(yīng)用程序耦合。

這一點(diǎn)很類似于XMPP,但是MQTT的信息冗余遠(yuǎn)小于XMPP,,因?yàn)閄MPP使用XML格式文本來(lái)傳遞數(shù)據(jù)。

(2)對(duì)負(fù)載內(nèi)容屏蔽的消息傳輸。

(3)使用TCP/IP提供網(wǎng)絡(luò)連接。

主流的MQTT是基于TCP連接進(jìn)行數(shù)據(jù)推送的,但是同樣有基于UDP的版本,叫做MQTT-SN。這兩種版本由于基于不同的連接方式,優(yōu)缺點(diǎn)自然也就各有不同了。

(4)有三種消息發(fā)布服務(wù)質(zhì)量:

"至多一次",消息發(fā)布完全依賴底層TCP/IP網(wǎng)絡(luò)。會(huì)發(fā)生消息丟失或重復(fù)。這一級(jí)別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無(wú)所謂,因?yàn)椴痪煤筮€會(huì)有第二次發(fā)送。這一種方式主要普通APP的推送,倘若你的智能設(shè)備在消息推送時(shí)未聯(lián)網(wǎng),推送過(guò)去沒(méi)收到,再次聯(lián)網(wǎng)也就收不到了。

"至少一次",確保消息到達(dá),但消息重復(fù)可能會(huì)發(fā)生。

"只有一次",確保消息到達(dá)一次。在一些要求比較嚴(yán)格的計(jì)費(fèi)系統(tǒng)中,可以使用此級(jí)別。在計(jì)費(fèi)系統(tǒng)中,消息重復(fù)或丟失會(huì)導(dǎo)致不正確的結(jié)果。這種最高質(zhì)量的消息發(fā)布服務(wù)還可以用于即時(shí)通訊類的APP的推送,確保用戶收到且只會(huì)收到一次。

(5)小型傳輸,開(kāi)銷很小(固定長(zhǎng)度的頭部是2字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量。

這就是為什么在介紹里說(shuō)它非常適合"在物聯(lián)網(wǎng)領(lǐng)域,傳感器與服務(wù)器的通信,信息的收集",要知道嵌入式設(shè)備的運(yùn)算能力和帶寬都相對(duì)薄弱,使用這種協(xié)議來(lái)傳遞消息再適合不過(guò)了。

(6)使用Last Will和Testament特性通知有關(guān)各方客戶端異常中斷的機(jī)制。

Last Will:即遺言機(jī)制,用于通知同一主題下的其他設(shè)備發(fā)送遺言的設(shè)備已經(jīng)斷開(kāi)了連接。

Testament:遺囑機(jī)制,功能類似于Last Will。

四、MQTT協(xié)議原理

4.1 MQTT協(xié)議實(shí)現(xiàn)方式

實(shí)現(xiàn)MQTT協(xié)議需要客戶端和服務(wù)器端通訊完成,在通訊過(guò)程中,MQTT協(xié)議中有三種身份:發(fā)布者(Publish)、代理(Broker)(服務(wù)器)、訂閱者(Subscribe)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時(shí)是訂閱者。

MQTT傳輸?shù)南⒎譃椋褐黝}(Topic)和負(fù)載(payload)兩部分:

(1)Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會(huì)收到該主題的消息內(nèi)容(payload);

(2)payload,可以理解為消息的內(nèi)容,是指訂閱者具體要使用的內(nèi)容。


4.2 網(wǎng)絡(luò)傳輸與應(yīng)用消息

MQTT會(huì)構(gòu)建底層網(wǎng)絡(luò)傳輸:它將建立客戶端到服務(wù)器的連接,提供兩者之間的一個(gè)有序的、無(wú)損的、基于字節(jié)流的雙向傳輸。

當(dāng)應(yīng)用數(shù)據(jù)通過(guò)MQTT網(wǎng)絡(luò)發(fā)送時(shí),MQTT會(huì)把與之相關(guān)的服務(wù)質(zhì)量(QoS)和主題名(Topic)相關(guān)連。

4.3 MQTT客戶端

一個(gè)使用MQTT協(xié)議的應(yīng)用程序或者設(shè)備,它總是建立到服務(wù)器的網(wǎng)絡(luò)連接。客戶端可以:

(1)發(fā)布其他客戶端可能會(huì)訂閱的信息;

(2)訂閱其它客戶端發(fā)布的消息;

(3)退訂或刪除應(yīng)用程序的消息;

(4)斷開(kāi)與服務(wù)器連接。

4.4 MQTT服務(wù)器

MQTT服務(wù)器以稱為"消息代理"(Broker),可以是一個(gè)應(yīng)用程序或一臺(tái)設(shè)備。它是位于消息發(fā)布者和訂閱者之間,它可以:

(1)接受來(lái)自客戶的網(wǎng)絡(luò)連接;

(2)接受客戶發(fā)布的應(yīng)用信息;

(3)處理來(lái)自客戶端的訂閱和退訂請(qǐng)求;

(4)向訂閱的客戶轉(zhuǎn)發(fā)應(yīng)用程序消息。

4.5 MQTT協(xié)議中的訂閱、主題、會(huì)話

一、訂閱(Subscription)

訂閱包含主題篩選器(Topic Filter)和最大服務(wù)質(zhì)量(QoS)。訂閱會(huì)與一個(gè)會(huì)話(Session)關(guān)聯(lián)。一個(gè)會(huì)話可以包含多個(gè)訂閱。每一個(gè)會(huì)話中的每個(gè)訂閱都有一個(gè)不同的主題篩選器。

二、會(huì)話(Session)

每個(gè)客戶端與服務(wù)器建立連接后就是一個(gè)會(huì)話,客戶端和服務(wù)器之間有狀態(tài)交互。會(huì)話存在于一個(gè)網(wǎng)絡(luò)之間,也可能在客戶端和服務(wù)器之間跨越多個(gè)連續(xù)的網(wǎng)絡(luò)連接。

三、主題名(Topic Name)

連接到一個(gè)應(yīng)用程序消息的標(biāo)簽,該標(biāo)簽與服務(wù)器的訂閱相匹配。服務(wù)器會(huì)將消息發(fā)送給訂閱所匹配標(biāo)簽的每個(gè)客戶端。

四、主題篩選器(Topic Filter)

一個(gè)對(duì)主題名通配符篩選器,在訂閱表達(dá)式中使用,表示訂閱所匹配到的多個(gè)主題。

五、負(fù)載(Payload)

消息訂閱者所具體接收的內(nèi)容。

4.6 MQTT協(xié)議中的方法

MQTT協(xié)議中定義了一些方法(也被稱為動(dòng)作),來(lái)于表示對(duì)確定資源所進(jìn)行操作。這個(gè)資源可以代表預(yù)先存在的數(shù)據(jù)或動(dòng)態(tài)生成數(shù)據(jù),這取決于服務(wù)器的實(shí)現(xiàn)。通常來(lái)說(shuō),資源指服務(wù)器上的文件或輸出。主要方法有:

(1)Connect。等待與服務(wù)器建立連接。

(2)Disconnect。等待MQTT客戶端完成所做的工作,并與服務(wù)器斷開(kāi)TCP/IP會(huì)話。

(3)Subscribe。等待完成訂閱。

(4)UnSubscribe。等待服務(wù)器取消客戶端的一個(gè)或多個(gè)topics訂閱。

(5)Publish。MQTT客戶端發(fā)送消息請(qǐng)求,發(fā)送完成后返回應(yīng)用程序線程。

五、MQTT協(xié)議數(shù)據(jù)包結(jié)構(gòu)

在MQTT協(xié)議中,一個(gè)MQTT數(shù)據(jù)包由:固定頭(Fixed header)、可變頭(Variable header)、消息體(payload)三部分構(gòu)成。MQTT數(shù)據(jù)包結(jié)構(gòu)如下:

(1)固定頭(Fixed header)。存在于所有MQTT數(shù)據(jù)包中,表示數(shù)據(jù)包類型及數(shù)據(jù)包的分組類標(biāo)識(shí)。

(2)可變頭(Variable header)。存在于部分MQTT數(shù)據(jù)包中,數(shù)據(jù)包類型決定了可變頭是否存在及其具體內(nèi)容。

(3)消息體(Payload)。存在于部分MQTT數(shù)據(jù)包中,表示客戶端收到的具體內(nèi)容。

5.1 MQTT固定頭

固定頭存在于所有MQTT數(shù)據(jù)包中,其結(jié)構(gòu)如下:

5.1.1 MQTT數(shù)據(jù)包類型

位置:Byte 1中bits 7-4。

相于一個(gè)4位的無(wú)符號(hào)值,類型、取值及描述如下:

5.1.2 標(biāo)識(shí)位

位置:Byte 1中bits 3-0。

在不使用標(biāo)識(shí)位的消息類型中,標(biāo)識(shí)位被作為保留位。如果收到無(wú)效的標(biāo)志時(shí),接收端必須關(guān)閉網(wǎng)絡(luò)連接:

(1)DUP:發(fā)布消息的副本。用來(lái)在保證消息的可靠傳輸,如果設(shè)置為1,則在下面的變長(zhǎng)中增加MessageId,并且需要回復(fù)確認(rèn),以保證消息傳輸完成,但不能用于檢測(cè)消息重復(fù)發(fā)送。

(2)QoS:發(fā)布消息的服務(wù)質(zhì)量,即:保證消息傳遞的次數(shù)

Ø00:最多一次,即:<=1

Ø01:至少一次,即:>=1

Ø10:一次,即:=1

Ø11:預(yù)留

(3)RETAIN: 發(fā)布保留標(biāo)識(shí),表示服務(wù)器要保留這次推送的信息,如果有新的訂閱者出現(xiàn),就把這消息推送給它,如果設(shè)有那么推送至當(dāng)前訂閱者后釋放。 5.1.3 剩余長(zhǎng)度(Remaining Length)

地址:Byte 2。

固定頭的第二字節(jié)用來(lái)保存變長(zhǎng)頭部和消息體的總大小的,但不是直接保存的。這一字節(jié)是可以擴(kuò)展,其保存機(jī)制,前7位用于保存長(zhǎng)度,后一部用做標(biāo)識(shí)。當(dāng)最后一位為1時(shí),表示長(zhǎng)度不足,需要使用二個(gè)字節(jié)繼續(xù)保存。例如:計(jì)算出后面的大小為0

5.2 MQTT可變頭

MQTT數(shù)據(jù)包中包含一個(gè)可變頭,它駐位于固定的頭和負(fù)載之間。可變頭的內(nèi)容因數(shù)據(jù)包類型而不同,較常的應(yīng)用是作為包的標(biāo)識(shí):

很多類型數(shù)據(jù)包中都包括一個(gè)2字節(jié)的數(shù)據(jù)包標(biāo)識(shí)字段,這些類型的包有:PUBLISH (QoS > 0)、PUBACK、PUBREC、PUBREL、PUBCOMP、SUBSCRIBE、SUBACK、UNSUBSCRIBE、UNSUBACK。

5.3 Payload消息體

Payload消息體位MQTT數(shù)據(jù)包的第三部分,包含CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE四種類型的消息:

(1)CONNECT,消息體內(nèi)容主要是:客戶端的ClientID、訂閱的Topic、Message以及用戶名和密碼。

(2)SUBSCRIBE,消息體內(nèi)容是一系列的要訂閱的主題以及QoS。

(3)SUBACK,消息體內(nèi)容是服務(wù)器對(duì)于SUBSCRIBE所申請(qǐng)的主題及QoS進(jìn)行確認(rèn)和回復(fù)。

(4)UNSUBSCRIBE,消息體內(nèi)容是要訂閱的主題。

想了解更多內(nèi)容,請(qǐng)?jiān)L問(wèn):

51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)

https://harmonyos.51cto.com/#zz

 

責(zé)任編輯:jianghua 來(lái)源: 鴻蒙社區(qū)
相關(guān)推薦

2017-05-26 10:35:13

前端HTTP

2010-07-01 16:41:33

PPPOE協(xié)議

2010-06-24 13:35:53

GRE協(xié)議

2020-12-25 10:52:28

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2010-06-18 13:37:02

AODV協(xié)議

2010-07-01 15:58:31

CANopen總線協(xié)議

2010-06-17 15:30:27

WAP協(xié)議

2021-09-28 14:38:44

鴻蒙HarmonyOS應(yīng)用

2010-06-11 14:42:01

IS-IS路由協(xié)議

2010-06-11 17:09:27

EIGRP路由協(xié)議

2010-06-21 13:43:46

2020-12-24 12:01:16

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2021-01-05 10:35:04

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)

2010-06-12 14:07:44

資源預(yù)留協(xié)議RSVP

2010-06-23 15:00:50

Fix協(xié)議

2010-06-21 14:23:13

連續(xù)ARQ協(xié)議

2020-11-18 11:36:35

鴻蒙系統(tǒng)

2022-09-26 11:30:40

MQTT協(xié)議客戶端協(xié)議

2020-12-07 12:47:22

MQTT鴻蒙hi3861

2021-01-06 11:21:56

鴻蒙HarmonyOS應(yīng)用開(kāi)發(fā)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产真人做爰毛片视频直播| jizz日韩| 亚洲五月综合| 亚洲欧美资源在线| 老司机色在线视频| 成人国产精品免费网站| 亚洲va欧美va在线观看| 国语精品视频| 亚洲国产欧美久久| 欧美拍拍视频| 1024成人网| 日韩精品电影网站| 在线激情影院一区| 成人看片app| 国产精品一级在线| 国产精品久久久久久久免费大片| 欧美大陆国产| 91精品国产综合久久精品性色| 国产国语**毛片高清视频| 高清日韩电视剧大全免费| 欧美日韩亚洲综合一区二区三区激情在线 | 图片区小说区区亚洲五月| 欧美亚洲色图校园春色| 日韩av一区二区在线观看| 婷婷在线视频| 亚洲一区电影777| 国产一伦一伦一伦| 久久精品欧美日韩精品| 亚洲色成人www永久在线观看| 日韩福利电影在线| 国产欧美一区二区三区另类精品| 欧美一区二区三区高清视频| 91国产高清在线| 亚洲伊人影院| 久久精品99久久香蕉国产色戒| 理论片午夜视频在线观看| 日韩欧美成人午夜| 免费观看久久久久| 欧美精品日日鲁夜夜添| av网站在线免费观看| 黑人精品xxx一区一二区| 色网在线视频| 欧美日韩在线视频一区| 暖暖视频在线免费观看| 在线视频中文字幕一区二区| 精品视频一二三| 欧美吻胸吃奶大尺度电影| 青青草视频免费在线观看| 日韩欧美主播在线| 98在线视频| 亚洲а∨天堂久久精品喷水| 爱草tv视频在线观看992| 精品亚洲一区二区三区在线播放| 美女100%一区| 九九热这里只有精品6| 亚欧日韩另类中文欧美| 久久亚洲精品国产亚洲老地址| 免费一区二区三区在线视频| 午夜伦理精品一区| jlzzjlzz亚洲女人| 国产高清不卡av| 日本伊人精品一区二区三区观看方式 | 国产美女诱惑一区二区| 三级三级久久三级久久18| 久久精品国产久精国产| 国产日韩亚洲欧美在线| 欧美极品美女视频| 亚洲欧美日本免费| 日韩免费视频线观看| ww久久综合久中文字幕| 青草青草久热精品视频在线观看| 在线国产一区| 影音先锋在线亚洲| 欧美极品aⅴ影院| 中文字幕在线视频免费观看| 日韩欧美视频一区| 日韩精品视频一区二区三区| 国产有码在线一区二区视频| 欧美a一区二区| 欧美精品性生活| 欧美日韩中文一区| 日本午夜精品久久久久| 91视频九色网站| 国产精品亚洲视频| 最近中文字幕mv免费高清在线| 欧美一级一区二区| 韩国女主播一区二区三区| 国产综合色一区二区三区| 豆国产96在线|亚洲| 一级二级在线观看| 伊人伊成久久人综合网站| 成人精品亚洲| 丁香六月激情网| 欧美性xxxx在线播放| 欧美成人三级| 九九热久久66| 国产精品免费av| 黄色成人在线网| 国产精品久久久| 激情综合色播激情啊| 肥女人的一级毛片| 亚洲二区在线播放视频| 在线看成人短视频| 日本a级片在线观看| 色婷婷香蕉在线一区二区| 国产一区二区三区| 精品欧美一区二区久久久伦| 国产精品午夜在线| 黄色动漫在线| 国产精品视频不卡| 91小视频在线| av蜜臀在线| 97免费资源站| 亚洲视频一区二区在线| 都市激情亚洲一区| 国产乱码精品一区二区三区卡 | av一区二区三区四区电影| 99久久国产综合精品女不卡 | 欧美国产精品一区| 51精品在线| av日韩免费电影| 国产精品欧美经典| 天堂中文av在线资源库| 官网99热精品| 亚洲一区二区三区国产| 久久亚洲人体| 一本一本久久a久久精品综合妖精| 亚洲成a人片在线观看中文| 国产一区一区| 99re8这里只有精品| 欧美精品aⅴ在线视频| 成人一级毛片| 四虎4hu新地址入口2023| 自拍偷拍亚洲在线| 奇米综合一区二区三区精品视频| 国产人成在线观看| 国产欧美精品一区二区三区-老狼| 久久综合九色综合97_久久久| 男人天堂视频在线观看| 美女黄毛**国产精品啪啪| 欧美视频专区一二在线观看| 亚洲精品进入| 成人免费在线观看视频网站| 色天天综合狠狠色| 国产成人一区二区精品非洲| 美女精品导航| 日韩欧美99| 日韩午夜激情电影| 嫩草成人www欧美| 777电影在线观看| 国产精品久久久久久久久久久久冷| 亚洲电影在线播放| 免费电影一区二区三区| 99re热视频在线| 久久免费高清视频| 中文字幕免费观看一区| 91欧美日韩在线| 波多野结衣xxxx| 国产69久久精品成人看| 中文字幕中文乱码欧美一区二区 | 一区二区三区中文在线观看| 久久99国产精品久久99大师| 午夜欧美福利视频| 国内精品久久影院| 18欧美乱大交hd1984| 色综合综合色| 亚洲一区在线日韩在线深爱| 国产一区二区丝袜| 色悠悠久久综合| 在线日韩中文| 男人天堂亚洲| 欧美一二三不卡| 欧美成人免费全部| 日韩一区在线播放| 成人免费电影网址| 91这里只有精品| 亚洲日本无吗高清不卡| 亚洲女同精品视频| 国产99精品视频| 国产视频一区二| 性色a∨人人爽网站| 国产精品一区二区三区免费观看 | a一区二区三区亚洲| 91网址在线播放| 国产美女久久久| 日韩一级片在线播放| 国产乱妇无码大片在线观看| 国产一区二区高清在线| 1区不卡电影| 国产日韩亚洲精品| 亚洲片av在线| 中文字幕在线观看不卡| 欧美日本免费| 在线成人av观看| 日本xxxxxx| 精品欧美日韩在线| 欧美成人免费va影院高清| 色综合视频在线观看| 国产激情91久久精品导航| 国产精品三级|