Mosquitto: 理解 MQTT 主題

本文件是入門指南指南的一部分。請在此處查看完整指南:如何開始使用 Mosquitto

👋 歡迎來到 Stackhero 文件!

Stackhero 提供即用型 Mosquitto MQTT cloud 解決方案,帶來多項優勢,包括:

  • 無限的消息交換和傳輸。
  • 通過外部 API 進行 無限 的設備認證。
  • 在主題、用戶和操作上提供 高級 ACLs
  • 使用 HTTPS 保護的 可自訂域名(例如,https://mqtt.your-company.com)。
  • 只需點擊即可輕鬆 更新
  • 專用私有 VM 提供的最佳 性能 和強大 安全性

節省時間簡化您的生活:只需 5 分鐘 即可嘗試 Stackhero 的 Mosquitto MQTT cloud hosting 解決方案!

MQTT 將通信組織為「主題」,這些主題作為發布和訂閱數據的通道。設備將消息發布到特定主題或訂閱它們以接收相關更新。

MQTT 中的主題區分大小寫,必須包含 UTF-8 字符,並且至少需要一個字符。主題中的層次結構是使用斜線(/)字符定義的。

以下是一個 IoT 設備收集溫度和濕度數據的設置示例,通過其 MAC 地址識別:

  • 對於 MAC 地址為 00:00:00:00:00:00 的設備:

    • 溫度:devices/00:00:00:00:00:00/temperature
    • 濕度:devices/00:00:00:00:00:00/humidity
  • 對於 MAC 地址為 11:11:11:11:11:11 的設備:

    • 溫度:devices/11:11:11:11:11:11/temperature
    • 濕度:devices/11:11:11:11:11:11/humidity

應用程序可以訂閱特定主題,例如 devices/00:00:00:00:00:00/temperature,以接收來自相應 IoT 設備的數據。

MQTT 支持通配符以便於主題管理:

  • + 通配符匹配主題層次結構中的單一層級。例如,訂閱 devices/+/temperature 可以捕獲像 devices/1/temperature 這樣的主題,但不包括 devices/1/2/temperature

  • # 通配符匹配多個層級。例如,devices/# 匹配 devices/1/temperaturedevices/2/humiditydevices/1/2/somethingElse 等主題。