MQTT协议-发布消息(客户端向服务器发送)
2023-09-11 14:21:43 时间
MQTT协议-发布消息(客户端向服务器发送)
发布消息报文组成:https://blog.csdn.net/weixin_46251230/article/details/129414158
在分析完服务器下发到客户端的报文后,就可以参考JSON格式的有效载荷,将温湿度的值改为自己想要设置的,再通过发布消息报文发送到服务器
1、组装发布消息报文
固定报头:30 ??
可变报头就是带有发布权限Topic类,可在阿里云里复制到文本文档,将设备名替换为自己的设备名称
然后通过网络调试助手转为十六进制格式,首两个字节表示长度
有效载荷是JSON格式,可以参照服务器下发的内容,修改其中的值,再发送回去
注意:method的值是"thing.event.property.post",id号是10位的,可随便写,修改温度标识符Temperature的值为25,湿度标识符Humidity的值为70
{"method":"thing.event.property.post","id":"1154179611","params":{"Temperature":25,"Humidity":70},"version":"1.0.0"}
将有效载荷转为十六进制,不用在开头加字节长度
组合固定报头+可变报头+有效载荷
计算的剩余长度为169个,因为大于128,所以用两个字节表示,169=128*a+b,可计算出a = 1,b = 41,a转为十六进制为01,b先转为二进制0010 1001,最高位需要变为1,所以为1010 1001,转为十六进制为A9,所以剩余长度就填A9 01
最终客户端向服务器发送的报文为
2、通过网络调试助手发送报文到服务器
先发送CONNECT报文连接阿里云
再发送上面组装好的发布信息报文,阿里云并没有回复,这是对的,因为组装时设置的Qos等级是0,没有响应部分,所以阿里云也没有应答
去阿里云平台的设备物模型数据查看数据是否上传成功,可看到温湿度的值都正确上传,而且更新时间是刚发送的报文时间
相关文章
- 为什么一般公司面试结束后会说「回去等消息」,而不是直接告诉面试者结果?
- ROS机器人程序设计(原书第2版)2.2.5 消息记录包
- Activemq消息类型
- 微信开发(02)之处理微信客户端发来的消息
- Objective-C中一种消息处理方法performSelector: withObject:
- android 自定义通知消息设置背景色不生效,导致部分机型显示白色字体,白色文字,用户以为不显示
- iOS开发系列--通知与消息机制
- python之tkinter使用-消息弹框
- RabbitMQ消息队列常见面试题总结
- iOS消息机制
- Silverlight+WCF 实战-网络象棋最终篇之解决重复的消息提示-状态重置(九)
- Linux——编写一个简单的服务器、客户端(使用TCP)——服务器一直监听本机的xxxx号端口,如果收到连接请求,将接收请求并接收客户端发来的消息;客户端与服务器端建立连接并发送一条消息。
- rabbitmq日志记录进出的每条消息
- 消息称雅虎确定上亿用户账号被泄露 即将对外宣布
- 3. 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定