想查看英文原文的請點擊原文網址。本文是paho中講述訂閱通配符的。仍是那句話,水平有限,若有翻譯不當之處,歡迎指正。html
MQTT信息包含一個主題來進行區分。MQTT服務器使用主題來肯定哪一個訂閱者能夠接收到發佈到服務器的信息。服務器
考慮到服務器要接收來自多種環境傳感器的信息,每一個傳感器將它的測量數據做爲帶有相關主題的信息來發布,訂閱程序須要知道,這些收到的信息,分別是由哪一個傳感器最初發布的,所以使用一個惟一的話題來區分每一個傳感器和測量類型。如SENSOR1TEMP,SENSOR1HUMIDITY,SENSOR2TEMP 等之類的話題實現了以上所述,但不夠靈活,若是在以後有別的傳感器被添加到這個系統,還必需要修改訂閱應用程序以接收它們。eclipse
爲了提供更大的靈活性, MQTT 支持分層主題命名空間。這容許應用程序設計人員組織主題以簡化其管理。層次結構中的級別由 "/" 字符分隔, 如 SENSOR/1/HUMIDITY。發佈者和訂閱者使用這些如上文所述的層次結構的主題。
訂閱者支持兩種兩個通配符:
1."#" 字符表示層次結構的完整子樹, 所以必須是訂閱主題字符串中的最後一個字符, 如SENSOR/#。這將匹配從SENSOR/開始的任何主題, 如 SENSOR/1/TEMP 和 SENSOR/2/HUMIDITY。
2."+" 字符表示層次結構的單個級別, 並在分隔符之間使用。例如, SENSOR/+/TEMP將匹配 SENSOR/1/TEMP 和 SENSOR/2/TEMP。翻譯
發佈者不容許在其主題名稱中使用通配符。設計
肯定主題層次結構是系統設計中的一個重要步驟。htm