[Node-RED] 安裝 MQTT 伺服器

Mosquitto 是開放原始碼的 MQTT 伺服器,可在 Windows、macOS、Linux 等作業系統上安裝執行,安裝程式可到 Mosquitto 官網 ( http://mosquitto.org/download ) 直接下載安裝。

  1. 我使用的是 Windows X64 系統,安裝後可以在「服務」中找到「mosquitto 服務」。
    在服務中找到mosquitto
  2. 按滑鼠右鍵,選擇「啟動」,來啟動該服務。服務啟動後,在「狀態」的欄位會顯示「執行中」。
    啟動MQTT
  3. MQTT 伺服器啟動後,會使用網路的「1883」通訊埠進行通訊。
  4. Windows 的防火牆預設是沒有開通 1883 埠,所以本機以外的通訊設備無法和 Mosquitto 伺服器連線。所以需要開通防火牆的 1883 埠。
  5. 測試MQTT伺服器是否正常運作:以管理者身分開啟兩個「終端機命令視窗」,並進入 mosquitto 資料夾。
    測試MQTT
  6. 在其中一個終端機命令視窗輸入「mosquitto_sub -t topicTest」模擬訂閱「topicTest」主題。
  7. 在另一個終端機命令視窗輸入「mosquitto_pub -h 127.0.0.1 -p 1883 -t topicTest -m “Hello World!!!”」。此時,在第一個終端機命令視窗(訂閱者)的畫面上,會出現(收到)發布者傳來的訊息。
    訂閱者收到訊息
  8. 如果要查詢 mosquitto 的指令,可在終端機命令視窗上輸入「mosquitto –help」。
  9. 用 Node-RED 測試 MQTT,開啟 Node-RED 後,使用「節點管理」安裝「MQTT」。
    安裝MQTT節點
  10. 安裝 MQTT 節點後,會在 Node-RED 左邊的節點清單「網絡」下找到「mqtt in」及「mqtt out」。
    MQTT節點
  11. 依序「mqtt in」、「debug」、「inject」、「mqtt out」等節點拖拉到流程視窗上。
  12. 編輯「mqtt in」,點擊下圖藍色框的鉛筆,可以進入進階的屬性設定。
    編輯mqtt in
  13. 在「連接」的頁面上,服務端輸入「node-red@localhost」,埠輸入「1883」。
    進階屬性設定_連接
  14. 在「消息」的頁面上,在「連接時發送的消息」選項上,主題輸入「topicTest」,內容輸入「Hi, Node-RED」,QoS 選擇「2」,最後點擊右上角的「更新」,回到上一層的屬性設定。
    QoS 若為 0 表示:最多傳一次。
    QoS 若為 1 表示:至少傳一次。
    QoS 若為 2 表示:確實傳一次。
    進階屬性_消息
  15. 「mqtt in」進階屬性設定完後如下圖:
    mqtt in 完整屬性
  16. 編輯「inject」屬性,msg.payload 輸入「再次發訊息」(也可以輸入任何您想輸入的訊息),如下圖:
    inject 屬性
  17. 編輯「mqtt out」,如下圖:
    mqtt out 屬性
  18. 最後將「mqtt in 」節點與「debug」節點連結起來,將「inject」節點與「mqtt out」節點連結起來。點擊「部署」按鈕,「mqtt in 」節點及「mqtt out」節點下方出現「已連接」,表示 MQTT 伺服器連線成功。
    MQTT連線成功
  19. 連線成功後,在 debug 視窗會出現「Hi, Node-RED, 123」,如果按下「inject」前面的方塊,則會出現「再次發訊息」(或是您輸入的訊息內容)。
    debug視窗的訊息