mqtt主題是一種定址方式,它允許mqtt客戶端共享資訊。
mqtt主題的結構類似於檔案系統中的資料夾和檔案,使用正斜槓(/)作為分隔符。
使用這個系統,您可以建立乙個使用者友好的和自描述的命名結構,由您自己選擇。
主題名稱:
除$ sys主題外,沒有預設主題或標準主題結構。
預設情況下,除了$ sys主題外,在伺服器(broker)上不會建立任何主題。
所有主題均由訂閱或發布客戶端建立,並且不是永久性的。
僅當客戶端已訂閱主題,或者伺服器(broker)具有針對該主題儲存保留訊息或最後遺囑訊息時,該主題才存在。
$ sys主題是乙個保留的主題,大多數mqtt伺服器(broker)都使用它來發布有關伺服器(broker)的資訊。
它們是mqtt客戶端的唯讀主題。 該主題結構沒有標準,但是這裡有乙個指導原則,大多數伺服器(broker)實現似乎都在遵循。
客戶可以訂閱單個或多個主題。
訂閱多個主題時,可以使用兩個萬用字元。 他們是:
#(雜湊字元)——多級萬用字元
+(加號)——單級萬用字元
萬用字元只能用於表示乙個或多個級別,比如 / house /#,而不能用作表示多個字元的名稱的一部分,例如 hou#則是無效的.
訂閱單個主題
訂閱主題 house/#
包括訂閱主題 house/+/main-light
包括但不包括
house+ – 原因-無主題級別
house# – 原因-無主題級別
客戶只能發布到單個主題。 也就是說,不允許在發布時使用萬用字元。
例如,要將訊息發布到兩個主題,您需要兩次發布訊息。
在以下情況下動態建立主題:
更改或組合命名方案時,很可能會這樣做。
這個想法是客戶會訂閱乙個主題,例如hub1 / sensor1,並使用新主題命名house1 / main-light重新發布資料。
問:我如何訂閱所有主題?
答:訂閱#
問:我如何訂閱所有$ sys主題?
答:訂閱$ sys /#
問:我應該以/開頭我的主題層次結構嗎?
答:不需要,只是在結構中增加了另乙個層次。
問:我可以獲取伺服器(broker)所有主題的列表嗎?
答:除非您訂閱所有主題並進行掃瞄,否則不能。
問:我可以告訴誰訂閱了乙個主題嗎?
答:否問:我如何發現主題?
答:目前,除了列出所有主題以外,沒有其他機制。
MQTT主題Topic講解
文章 於 我們已經把相關的連線報文搞定了。筆者想來想去還是決定先講解一下訂閱報文 subscribe 如果傳統的通訊方式是客戶端和服務端之間一般就直接傳輸資訊。但是mqtt的通訊方式是通過發布 訂閱的方式進行的。筆者不知道他是否跟設計模式中的發布訂閱模式有沒有關係。可是他們思想卻有一點相似之處。注意...
Mqtt入門之主題與主題過濾器
主題是乙個utf 8字串,由乙個或多個主題級別組成,每個主題級別之間由正斜槓 主題級別分隔符 分隔,如下圖所示 含有萬用字元的主題,目的是讓客戶端同時訂閱多個主題。當客戶端訂閱主題時,它可以使用訊息發布到的確切主題,或者可以使用萬用字元同時訂閱更多的主題。萬用字元只能在訂閱主題時使用,並且在發布訊息...
MQTT 協議理解
mqtt特點 mqtt協議是為大量計算能力有限,且工作在低頻寬 不可靠的網路的遠端感測器和控制裝置通訊而設計的協議,它具有以下主要的幾項特性 1 使用發布 訂閱訊息模式,提供一對多的訊息發布,解除應用程式耦合 2 對負載內容遮蔽的訊息傳輸 3 使用 tcp ip 提供網路連線 4 有三種訊息發布服務...