日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Tsung MQTT协议简介及MQTT xml文档配置介绍

發(fā)布時間:2025/5/22 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tsung MQTT协议简介及MQTT xml文档配置介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

MQTT協(xié)議簡介及MQTT xml文檔配置介紹

by:授客?QQ:1033553122

1.?MQTT協(xié)議介紹

MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的“輕量級”通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上。

?

MQTT最大優(yōu)點在于,可以以極少的代碼和有限的帶寬,為連接遠程設(shè)備提供實時可靠的消息服務(wù)。做為一種低開銷、低帶寬占用的即時通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動應(yīng)用等方面有較廣泛的應(yīng)用。

?

2.?MQTT協(xié)議原理

?

?

  • 實現(xiàn)MQTT協(xié)議需要:客戶端和服務(wù)器端
  • MQTT協(xié)議中有三種身份:發(fā)布者(publishers)、代理(Broker,服務(wù)器)、訂閱者(Subscriber)。其中,消息的發(fā)布者和訂閱者都是客戶端,消息代理是服務(wù)器,消息發(fā)布者可以同時是訂閱者。?
  • MQTT傳輸?shù)南⒎譃?#xff1a;主題(Topic)和負載(payload)兩部分

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

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

?

參考連接:http://itbilu.com/other/relate/4kHBsx_Pg.html#mqtt-topic

?

3.?方法

3.1?connect

連接服務(wù)器

<request>

????<mqtt type="connect" clean_start="true" keepalive="20" will_topic="will_topic" will_qos="0" will_msg="will_msg" will_retain="false">

????</mqtt>

</request>

?

說明:

連接

clean_start - true:開啟一個新的會話。false:不清空會話信息,沿用之前相同Client_id的會話

?

keepalive -?以秒為單位,會話心跳時間,即從客戶端傳輸一個控制報文結(jié)束到開始傳輸下一個控制報文,允許的最大時間間隔。客戶端必須保證控制報文之間的傳輸時間間隔不能超過心跳時間。在沒發(fā)送其它任何控制報文的時候,客戶端必須發(fā)送一個PINGREQ報文。

?

客戶端可以不管keepalive?時間,在任意時刻,發(fā)送PINGREQ,一遍檢測網(wǎng)絡(luò)和服務(wù)器正在工作。

?

如果keepalive值不為0,且服務(wù)器在1個半的keepalive時間內(nèi),沒有收到來自客戶端的控制報文,必須斷開客戶端的網(wǎng)絡(luò)連接,正如網(wǎng)絡(luò)連接失敗

?

如果keepalive值為0,表示關(guān)閉心跳機制,這意味著服務(wù)器不要求斷開處于不活動狀態(tài)的客戶端

?

keepalive實際值是由應(yīng)用程序指定的,通常為幾分鐘。

?

will_qos -?指定發(fā)布will_msg時的QoS級別。如果Will Flag為0,那么will_qos必須為0,如果Will Flag為1,那么will_qos可以為0,1,2。不能為3。

?

will_topic -?主題名稱

?

will_msg -?定義要發(fā)布到will_topic的應(yīng)用程序消息。如果客戶端意外的斷開觸發(fā)服務(wù)器PUBLISH此消息(消息主題名為:will_topic中指定的內(nèi)容, 消息內(nèi)容為?will_msg指定的內(nèi)容)。

?

will_retain?-?用于判斷當(dāng)will_msg發(fā)布后,是否保留will_msg。如果Will Flag設(shè)置為0,will_retain必須設(shè)置為0,如果如果Will Flag設(shè)置為1,如果will_retian設(shè)置為0,服務(wù)器發(fā)布will_msg后,必須不保留will_msg消息,如果will_retian設(shè)置為1,服務(wù)器發(fā)布消息will_msg后,必須保留will_msg。tsung中will_retain可選值true(對應(yīng)1),false(對應(yīng)0)

?

參考連接:

http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718028

?

3.2?publish

發(fā)布消息

<request subst="true">

????<mqtt type="publish" topic="test_topic" qos="1"??

??????????????????retained="true">test_message

??</mqtt>

</request>

?

說明:

topic -?主題名稱

qos -?值為0:至多發(fā)送一次,為1: 至少發(fā)布一次,為2: 只發(fā)送一次

retained ?-?如果設(shè)置為1,服務(wù)器必須存儲來自客戶端發(fā)送給服務(wù)器的發(fā)布消息中的應(yīng)用消息和Qos,這樣當(dāng)訂閱匹配其主題名稱時,把存儲的內(nèi)容發(fā)送給訂閱者。如果設(shè)置為0,服務(wù)器必須存儲來自客戶端發(fā)送給服務(wù)器的發(fā)布消息,且不允許移除、替換已經(jīng)存在的保留消息。

?

參考連接:

http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718037

?

3.3?disconnect

斷開連接

<request>

??<mqtt type="disconnect"></mqtt>

</request>

?

3.4?subscribe

訂閱主題

<request subst="true">

????<mqtt type="subscribe" topic="test_topic" qos="1"></mqtt>

</request>

?

說明:

topic -?想要訂閱的主題名稱

qos -?如果設(shè)置為1,針對QoS 0應(yīng)用程序消息,客戶端最多只能收到一份消息,針對Qos 2,客戶端可能會收到兩份重復(fù)的消息。

?

如果設(shè)置為0,以Qos2發(fā)送的應(yīng)用消息在傳輸給客戶端,可能會丟失,而以Qos 1發(fā)送的應(yīng)用消息在傳輸給客戶端時也可能會丟失或者重復(fù)。

?

參考連接:

http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718063

3.5?waitForMessages

等待消息????????????

<request>

????<mqtt type="waitForMessages" timeout="60"></mqtt>

</request>

?

說明:

timeout -?設(shè)置等待消息超時時間,單位秒

?

3.6?unsubscribe

取消訂閱主題????????????

<request subst="true">

<mqtt type="unsubscribe" topic="test_topic"></mqtt>

</request>

?

說明:

topic -?想要取消訂閱的主題名稱

?

?

轉(zhuǎn)載于:https://www.cnblogs.com/shouke/p/10157655.html

總結(jié)

以上是生活随笔為你收集整理的Tsung MQTT协议简介及MQTT xml文档配置介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。