MQTT.fx是一款基于Eclipse Paho使用Java語言編寫的MQTT客戶端,支持Windows、Mac和Linux操作系統,可用于驗證設備是否可與物聯網平臺正常連接,并通過Topic訂閱和發布消息。本文以Windows系統下MQTT.fx為例,介紹設備使用MQTT協議模擬接入物聯網平臺。
前提條件
- 已創建產品和設備,并獲取MQTT連接參數。具體操作,請參見創建產品與設備和獲取MQTT簽名參數值。
本示例獲取的設備證書和MQTT連接參數值如下表,參數詳細說明,請參見MQTT-TCP連接通信。
參數 值 ProductKey a1***
DeviceName device1
DeviceSecret f35***d9e
clientId a1***.device1|securemode=2,signmethod=hmacsha256,timestamp=2524608000000|
username device1&a1***
passwd 86761***21d
mqttHostUrl a1***.iot-as-mqtt.cn-shanghai.aliyuncs.com
port 1883
- 已定義物模型屬性,用于測試設備使用物模型通信Topic進行上下通信。具體操作,請參見為產品定義物模型。
本示例定義物模型如下圖所示:
注意 MQTT.fx模擬的在線設備,僅支持非透傳消息通信。如需實現透傳信息通信,您可以使用真實設備或SDK進行測試。
視頻演示
使用MQTT.fx,模擬設備接入物聯網平臺的操作如下。
配置MQTT.fx接入
下文通過測試自定義Topic、物模型通信Topic的上下行通信,驗證MQTT.fx與物聯網平臺連接是否成功。若測試與本示例結果不符,表示通信連接失敗,您需根據日志信息,進行修正。
使用自定義Topic通信
自定義Topic的詳細信息,請參見自定義Topic。本示例使用物聯網平臺默認提供的自定義Topic:
Topic | 權限 | 說明 |
---|---|---|
/a1***/device1/user/update/error |
發布 | 上行通信:設備通過該Topic向物聯網平臺發送消息。 |
/a1***/device1/user/get |
訂閱 | 下行通信:設備通過訂閱該Topic,獲取從物聯網平臺下發的消息。 |
上行通信
下行通信
使用物模型通信Topic通信
物模型通信Topic的詳細信息,請參見什么是Topic。本示例使用物模型通信Topic:
Topic | 權限 | 說明 |
---|---|---|
/sys/a1****/device1/thing/event/property/post |
發布 | 上行通信:設備通過該Topic向物聯網平臺上報屬性數據。 |
/sys/a1****/device1/thing/event/property/post_reply |
訂閱 | 下行通信:設備通過訂閱該Topic,獲取物聯平臺響應設備屬性上報的消息。 |
/sys/a1****/device1/thing/service/property/set |
訂閱 | 下行通信:設備通過該訂閱Topic,獲取物聯網平臺下發的消息。 |
設備上報屬性
設置設備屬性