本文將以 MQTTBox 作爲 MQTT 客戶端測試工具,接入 MQTT 雲服務 - EMQ X Cloud。通過本文,你將能快速瞭解 MQTTBox 的基礎用法以及 MQTT 協議的基本概念與使用。
MQTTBox 簡介
MQTTBox 是 Sathya Vikram 個人開發的 MQTT 客戶端工具,最初僅在 Chrome 上作爲拓展安裝使用, 後經重寫開源成爲桌面端跨平臺軟件。界面簡單直接,支持多個客戶端同時在線,但客戶端之間的切換、互發消息等交互還是有一些不便。MQTTBox 藉助 Chrome 實現強大的跨平臺特性,結合簡單的負載測試功能,是一款值得嘗試的 MQTT 客戶端工具。
MQTTBox 完整的支持了以下功能:
- 通過支持 Chrome OS,Linux,macOS,Windows 的 Chrome 存儲易於安裝,支持 Linux、macOS、Windows 獨立安裝
- 支持 MQTT、MQTT over WebSocket,多種 TCP 加密方式的連接
- 保存發送的消息歷史記錄
- 複製/粘貼歷史記錄中的消息
- 保存訂閱消息歷史記錄
- 簡單的性能測試,對 Broker 的負載做出測試並通過圖表可視化查看測試結果
EMQ X Cloud 簡介
EMQ X Cloud 是由 EMQ 公司推出的可連接海量物聯網設備,集成各類數據庫及業務系統的全託管雲原生 MQTT 服務。作爲全球首個全託管的 MQTT 5.0 公有云服務,EMQ X Cloud 提供了一站式運維代管、獨有隔離環境的 MQTT 消息服務。
在萬物互聯的時代,EMQ X Cloud 可以幫助用戶快速構建面向物聯網領域的行業應用,輕鬆實現物聯網數據的採集、傳輸、計算和持久化。
本文將使用 EMQ X Cloud 提供的 免費公共 MQTT 服務器 作爲本次測試的 MQTT 服務器地址,服務器接入信息如下:
- Broker: broker-cn.emqx.io
- TCP Port: 1883
- SSL/TLS Port: 8883
更多詳情請訪問 EMQ X Cloud 官網,或查看 EMQ X Cloud 文檔。
MQTTBox 使用
MQTT 連接
初始化頁面
打開軟件後,進入到軟件主界面,點擊頂部菜單欄的 Create MQTT Clinet
按鈕,進入到創建 MQTT 客戶端頁。
創建連接
進入到創建 MQTT 客戶端頁面後,填寫 Host、選擇連接協議等 MQTT 相關配置信息後,點擊底部的 Save
按鈕即可立即創建一個連接客戶端。
注意:填寫 Host 時,需填入完整的地址,包含連接的端口號。如果是 WebSocket 連接,還需加上 Path。如果 MQTT Broker 開啓用戶名/密碼認證的,還需要在配置頁面內輸入 Username / Password
此時保存成功後,會進入到一個客戶端詳情頁面,如果右上角的按鈕顯示 Connected
並且爲綠色,即表示該 MQTT 客戶端已經成功連接,再次點擊後可以斷開客戶端連接。
訂閱主題
完成連接的建立之後,即可開始訂閱消息。因爲 MQTT 協議採用的是發佈/訂閱的模型,所以我們需要在連接之後訂閱主題,之後主題上有消息產生即可收到來自 EMQ X Cloud 推送。
在 MQTTBox 的客戶端詳情頁面中默認有兩個發送和訂閱的輸入框。如果有多個訂閱或者不同的發佈內容,可以添加多個,點擊頂部菜單欄中的 Add publisher
和 Add subscriber
按鈕可以添加和管理多個發佈訂閱。
我們先在右側的黃色框內輸入 Topic:testtopic/mqttbox
,選擇 QoS 等級後,點擊 Subscribe
按鈕即可訂閱相關 Topic。
MQTT 消息發佈
然後我們在藍色的框內輸入要發佈的 Topic,這裏輸入剛纔訂閱過的 testtopic/mqttbox
,選擇 QoS 級別,選擇默認的 Payload Type,支持 String / JSON / XML / Characters
,我們 Payload 的框內輸入一段 JSON 後,點擊 Publish 按鈕。
此時我們可以看到右邊的訂閱框內,出現了剛纔發佈的消息。至此,我們已經創建了一個 MQTT 客戶端併成功測試了連接、發佈、訂閱等功能。
TLS/SSL 連接
除普通連接外,MQTTBox 還支持 TLS/SSL 連接。
如使用 EMQ X Cloud 的話,可以參考該文檔來創建證書。我們可以進入到客戶端詳情頁中,選擇協議爲 mqtts/tls 或者 wss,然後選擇保存。
如果是雙向認證的話,可以在配置頁面中選擇 CA 證書文件,客戶端證書和客戶端 Key 文件,再選擇連接。連接前請確定 TLS/SSL 連接的端口並做修改。
版權聲明: 本文爲 EMQ 原創,轉載請註明出處。
原文鏈接:https://www.emqx.com/zh/blog/connecting-to-emqx-cloud-with-mqttbox