看这篇博文之前。建议大家看看前两篇博文MQTT学习3和MQTT学习4,
1、在Linux下的服务器需要订阅消息,阿里云才能给其发布消息,订阅命令与阿里云控制台的设备信息有关(详细请看上一篇博客mosquitto安装):
以上是在阿里云控制台双肩设备的时候保存下来的信息,Linux下订阅消息的命令:
mosquitto_sub -h ${ProductKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com -p 1883 -t "/sys/${ProductKey}/${DeviceName}thing/event/property/set" -i "12345|securemode=3,signmethod=hmacsha1,timestamp=789|" -u "SHT20&${ProductKey}" -P "${DeviceSecret}"
2、在阿里云发布消息,发布消息之前我们需要把设备标准功能中的读写类型改为读写,并
设备需要在线,
发布上线:
进行在线调试:客户端订阅之后,阿里云发布消息:
也可以将打包好的json文件通过客户端发送给阿里云:
这里表明了当QoS(服务质量)等级分别为0、1、2时,其消息发布的过程不同:
- QoS等级为1
QoS等级为2:
- QoS等级为0:
关于MQTT的QoS等级区别和意义请参考:【MQTT学习1】MQTT协议的基本了解