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,获取物联网平台下发的消息。 |
设备上报属性
设置设备属性