跳到內容

MQTT

只要在 WebSocket 請求上選擇 mqtt 協定,就能 使用 MQTT。

一個 MQTT 分頁:主題、QoS、Retain 選項、連線時訂閱、用戶端 ID、keepalive、遺囑訊息(LWT),以及發布的負載

欄位作用
URLbroker 的位址(mqtt://mqtts://,或 WebSocket)
主題主題,由 事件 欄位承載
訊息發布出去的負載
QoS012 — 發布訂閱時都會用到
保留(retain)把訊息標記為由 broker 保留
用戶端 ID由 Handlebars 解析;留空時會自動產生
使用者 / 密碼broker 的憑證資訊;密碼接受密鑰類型的值
Keepalive以秒為單位
訂閱主題預設啟用:連線時 Restorm 會訂閱該請求的主題

主題本身也接受 {{variables}}capteurs/{{site}}/{{capteurId}} 就是一個完全合法 的主題。

有四個欄位用來宣告:萬一您的用戶端突然消失,broker 該發布哪一則訊息 — 遺囑訊息的 主題負載QoS保留設定。

要測試系統面對不乾淨斷線時的反應,這正是最合適的工具:設定一則遺囑訊息、切斷連線, 然後確認訂閱端有做出反應。

MQTT 用戶端會自動重新連線,上限為十次嘗試

MQTT connect(會訂閱該請求的主題,並在每收到一則訊息時發出一個事件)、 MQTT publish(以該請求的 QoS 與保留設定發布)以及關閉 MQTT 連線。請參閱 連線與串流

Restorm 能託管一個本機 MQTT broker:每個連接埠一個 broker,既可透過原始 TCP 存取,也可透過 MQTT-over-WebSocket 閘道存取。請參閱 模擬 WebSocket、Socket.IO 與 MQTT

一份 AsyncAPI 文件只要其頻道使用 mqtt 協定,就會直接產生 MQTT 請求(每個頻道一個, 發布與訂閱都有),並依訊息的結構描述產生範例負載。請參閱 匯入 AsyncAPI