MQTT.fx是一款基于Eclipse Paho,使用Java语言编写的MQTT客户端工具,支持通过Topic订阅和发布消息。下面以使用第三方软件MQTT.fx为例,介绍模拟设备以MQTT协议接入物联网平台。
使用MQTT.fx接入
- 下载并安装MQTT.fx软件。请访问MQTT.fx官网。
- 打开MQTT.fx软件,单击菜单栏中的Extras,选择Edit Connection Profiles。
- 进入Edit Connection Profiles页后,完成以下参数的设置。
- 设置基本信息。
参数 说明 示例 Profile Name 输入您的自定义名称。 iot connection Profile Type 选择为MQTT Broker。 MQTT Broker Profile Settings Broker Address 接入域名。 a1oGs******.iot-as-mqtt.cn-shanghai.aliyuncs.com 本示例为公共实例接入。- a1oGs******为本示例的productKey。
- cn-shanghai为本示例所在地域。
Broker Port 设置为1883。 Client ID 固定格式:
${ClientID}|securemode=${Mode},signmethod=${SignMethod}|
。此ID为MQTT.fx的Client ID,由以下几个参数构成:
- ${ClientId}为设备、App或Web等场景下的Client ID信息,多数情况下为设备的ID信息。可取任意值,长度在64字符以内。建议使用设备的MAC地址或SN码。
- securemode为安全模式。
- TCP直连模式设置为
securemode=3
,无需设置SSL/TLS信息。 - TLS直连模式设置为
securemode=2
,需要设置SSL/TLS信息。
- TCP直连模式设置为
- signmethod为算法类型,支持hmacmd5和hmacsha1。
说明- 请注意此处Client ID和${ClientId}的区别,切勿混淆。
- 请注意不要遗漏参数之间及最后的竖线(|)。
- 设置参数时,请确保参数值中或参数值的前后均没有空格。
- 输入Client ID信息后,请勿单击Generate。
12345|securemode=2,signmethod=hmacsha1| - 12345为示例设备的clientId。
- securemode=2为示例选择的模式,TLS直连模式。
- signmethod=hmacsha1为示例选择的加密算法。
General栏下的设置项可保持系统默认,也可以根据您的具体需求设置。
- 单击User Credentials,设置User Name和Password。
参数 参数说明 示例 User Name 固定格式:
${DeviceName}&${ProductKey}
。由设备名DeviceName、and(&)和产品ProductKey组成。
Light&a1oGs****** Light
为设备的DeviceName。a1oGs******
为设备的ProductKey。
Password 通过选择的加密方法,以设备的DeviceSecret为密钥,将参数和参数值拼接后,加密生成Password。 说明- 如果您使用的MQTT.fx版本,在粘贴Password后不显示具体的字符串,只要光标已从输入框的前部移至了后部,则表示粘贴成功,请勿重复粘贴。
- 请注意参数和参数值中字母的大小写。
通过以下两种方法生成Password。
-
单击下载Password生成小工具。解压文件后,双击sign.html文件,即可使用。
- 手动生成方法如下:
- 拼接参数。
待加密字符串格式:
clientId${clientId}deviceName${deviceName}productKey${productKey}timestamp${timestamp}
- 加密。
加密计算格式:
${signmethod}(${deviceSecret},clientId${clientId}deviceName${deviceName}productKey${productKey}timestamp${timestamp})
- 拼接参数。
其中的参数说明如下。
- productKey:设备所属产品Key。可在控制台设备详情页查看。
- deviceName:设备名称。可在控制台设备详情页查看。
- deviceSecret:设备密钥。可在控制台设备详情页查看。
- timestamp:(可选)时间戳。
- clientId:设备的ID信息,与MQTT.fx的Client ID中${clientId}一致。
- method:选择签名算法类型,与MQTT.fx的Client ID中signmethod确定的加密方法一致。
- 工具生成示例:
- 手动生成
待加密字符串的示例:
clientId12345deviceNameLightproductKeya1oGs******
加密计算格式示例:
hmacsha1(8DTASg0cf8rEmSJwc6y6msF0On******,clientId12345deviceNameLightproductKeya1oGs******)
其中的参数说明如下。
hmcsha1
为加密算法。8DTASg0cf8rEmSJwc6y6msF0On******
为设备的DeviceSecret。12345
为设备的Client ID。Light
为设备的DeviceName。a1oGs******
为设备的ProductKey。- 本示例没有选择可选参数timestamp。
- TLS直连模式(即
securemode=2
)下,需要选择SSL/TLS,选中Enable SSL/TLS,设置Protocol。建议Protocol选择为TLSv1.2。说明 TCP直连模式(即securemode=3
)下,无需设置SSL/TLS信息,直接进入下一步。
- 设置基本信息。
- 设置完成后,单击右下角的OK。
- 单击Connect进行连接。
下行通信测试
- 在MQTT.fx上,单击Subscribe。
- 在Subscribe文本框中,输入一个设备具有订阅权限的自定义Topic后,再单击Subscribe,订阅这个自定义Topic。说明
- 您可以在对应产品的产品详情页下的Topic 类列表页签下,单击自定义 Topic页签,查看自定义Topic的权限。
- 输入自定义Topic时,其中的
${deviceName}
需更改为您的设备名称。 - 更多信息,请参见自定义Topic。
订阅成功后,该Topic将显示在列表中。
- 登录物联网平台控制台,在对应实例下,找到该设备的设备详情页,在Topic列表页签下,单击已订阅的Topic对应的发布消息。
- 输入消息内容,单击确认。
- 回到MQTT.fx上,查看是否接收到消息。
上行通信测试
在MQTT.fx上发送消息,通过查看设备日志,测试MQTT.fx与物联网平台连接是否成功 。
- 在MQTT.fx上,单击Publish。
- 在Publish文本框中,输入一个设备具有发布权限的Topic;然后在文本编辑页面,输入要发送的消息内容。单击Publish,向这个Topic推送一条消息。
- 登录物联网平台控制台,在对应实例下,选择监控运维 > 日志服务,在云端运行日志页签下查看该设备到云的消息。
查看日志
在MQTT.fx上,单击Log查看操作日志和错误提示日志。

在文档使用中是否遇到以下问题
更多建议
匿名提交