Node-RED: MQTT 伺服器
如何將 Node-RED 連接到 Mosquitto MQTT 伺服器
👋 歡迎來到 Stackhero 文件!
Stackhero 提供即用型的 Node-RED 雲端 解決方案,帶來多項好處,包括:
- 包含 MQTT 伺服器(Mosquitto)。
- 完整訪問 Node-RED 管理界面。
- 包含 Node-RED 儀表板。
- 包含 無限制 和專用的 SMTP 電郵伺服器。
- 只需點擊即可輕鬆進行 更新。
- 使用 HTTPS 保護的 可自訂域名(例如,https://node-red.your-company.com)。
- 由 專用私有 VM 提供的最佳 性能 和強大 安全性。
節省時間 和 簡化您的生活:只需 5 分鐘 即可嘗試 Stackhero 的 Node-RED 雲端託管 解決方案!
Stackhero 的 Node-RED 服務內建 MQTT 伺服器,讓您可以透過安全可靠的通訊渠道輕鬆整合 IoT 裝置。
要開始使用,只需前往 Stackhero 控制台,找到您的 Node-RED 服務,然後在服務設定中啟用「MQTT Server」選項。
伺服器啟用後,您可以透過 8883 埠口連接。所有連線均採用 TLS 加密,確保您的資料受到保護。
簡單範例:在 Node-RED 中使用 MQTT 伺服器
如果您是第一次在 Node-RED 使用 MQTT,以下是一個簡單範例,協助您快速上手。這個範例展示如何向一個 topic 發送訊息並接收來自該 topic 的訊息。您可以下載流程範例,並透過「Import」選單匯入到您的 Node-RED 實例。
連接 MQTT 到 Node-RED 的簡單範例
如果您的 MQTT 節點一直顯示「connecting」狀態,建議檢查
MQTT authentication流程是否仍然存在。如果缺少,您可以在這裡下載:mqttAuthenticationFlow.json。將此流程匯入您的 Node-RED 實例,並在Users節點中更新您想要的密碼,然後根據需要移除不必要的註解。
在 Node-RED 中驗證 MQTT 用戶
在 Node-RED 中,透過專用流程管理 MQTT 用戶驗證非常簡單。您可以直接在 Node-RED 管理介面找到「MQTT Authentication」流程。
MQTT 驗證流程
在這個驗證流程中,請尋找 Users 範本節點。這個節點包含一個陣列,您可以在其中為每位用戶設定認證資料。您可以根據專案需求新增任意數量的用戶。
注意:
node-red用戶是 Node-RED 連接到 MQTT 伺服器所必需的。請勿從您的設定中移除此用戶。
MQTT 用戶節點
透過 WebSockets 連接到 MQTT
您可以選擇使用 MQTT 協議或 WebSockets 連接到 Mosquitto MQTT 伺服器。
雖然 MQTT 協議輕量且非常適合 IoT 裝置,但它並未被瀏覽器原生支援。如果您希望從瀏覽器與 MQTT 伺服器互動,建議使用 WebSockets。這種方式可將 MQTT 流量封裝在 WebSocket 協議中,並可與 Stackhero 的服務無縫配合。
要啟用 WebSocket 連線,只需在 Stackhero 控制台啟用「WebSocket Support」選項。啟用後,您可以將客戶端設定為使用 WebSocket URL:wss://<XXXXXX>.stackhero-network.com:443/mqtt。請確保將預設的 mqtts://<XXXXXX>.stackhero-network.com 替換為此 WebSocket URL,以便瀏覽器端連線。
選擇 MQTT 程式庫
在開發時,您可能會發現「MQTT.js」程式庫特別有用。這是一個功能強大的 JavaScript 程式庫,兼容 Node.js 及瀏覽器環境。您可以參考其官方儲存庫以獲取更多資訊。
透過 WebSockets 從瀏覽器連接 MQTT 的範例
如果您需要一個實際範例,說明如何從瀏覽器透過 WebSockets 連接到 MQTT 伺服器,可以參考這個儲存庫:https://github.com/stackhero-io/mqttWebSocketGettingStarted。您可以根據自己的設定,自行修改 src/index.html 檔案中的 url、username 和 password。
MQTT WebSocket 範例
在嘗試此設定前,請先確認已在 Stackhero 控制台啟用 WebSocket 支援。這樣可確保瀏覽器端連線順利運作。