You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为发送至Azure IoT Hub的MQTT消息添加自定义属性

用MQTT客户端(如Mosquitto)向Azure IoT Hub发送带自定义属性的消息方案

方案1:MQTT 5.0 User Properties(推荐)

如果你的MQTT客户端支持MQTT 5.0(比如新版Mosquitto),直接利用MQTT协议的User Properties字段传递自定义属性即可——Azure IoT Hub会自动将这些键值对识别为消息的自定义应用属性,和官方SDK的效果完全一致。

以mosquitto_pub为例,用-D参数添加User Properties:

mosquitto_pub -h {你的IoT Hub名称}.azure-devices.net -p 8883 -i {设备ID} -u "{你的IoT Hub名称}.azure-devices.net/{设备ID}/api-version=2021-04-12" -P {SAS令牌} -t "devices/{设备ID}/messages/events/" -m "Hello from mosquitto" -D publish user-property customProp1 "value1" -D publish user-property customProp2 "value2"

方案2:MQTT 3.1.1兼容格式

如果只能使用MQTT 3.1.1(客户端不支持5.0),需要把自定义属性以JSON格式放在消息payload的最开头,后跟一个换行符,再拼接实际的消息内容。Azure IoT Hub会自动解析前面的JSON作为自定义属性,换行后的内容作为消息体。

示例payload结构:

{"customProp1":"value1","customProp2":"value2"}
Hello from mosquitto

用mosquitto_pub发送的命令示例:

mosquitto_pub -h {你的IoT Hub名称}.azure-devices.net -p 8883 -i {设备ID} -u "{你的IoT Hub名称}.azure-devices.net/{设备ID}/api-version=2021-04-12" -P {SAS令牌} -t "devices/{设备ID}/messages/events/" -m $'{"customProp1":"value1","customProp2":"value2"}\nHello from mosquitto'

验证方法

发送后可以用Azure CLI的命令查看消息是否携带正确的自定义属性:

az iot hub monitor-events --hub-name {你的IoT Hub名称} --device-id {设备ID}

在输出的properties字段下就能看到你添加的自定义属性。

内容的提问来源于stack exchange,提问作者Anh Tu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 15:03:25