基于阿里云的MQTT协议入门六:SUBSCRIBE 订阅请求

7 篇文章 1 订阅
6 篇文章 0 订阅

客户端向服务端发送SUBSCRIBE报文用于创建一个或多个订阅。每个订阅注册客户端关心的一个或多个主题。为了将应用消息转发给与那些订阅匹配的主题,服务端发送PUBLISH报文给客户端。SUBSCRIBE报文也(为每个订阅)指定了最大的QoS等级,服务端根据这个发送应用消息给客户端。
固定报头:
在这里插入图片描述
SUBSCRIBE控制报固定报头的第3,2,1,0位是保留位,必须分别设置为0,0,1,0。服务端必须将其它的任何值都当做是不合法的并关闭网络连接。
剩余长度字段等于可变报头的长度(2字节)加上有效载荷的长度。
可变报头:
报文标识符等于10的可变报头,非规范示例
在这里插入图片描述
有效载荷:
在这里插入图片描述
假设订阅的设备属性为:
/sys/a1gmk6tYAWS/Test001/thing/service/property/set
在这里插入图片描述
那么我们需要发送的内容就是 长度 + 以上内容 + 服务质量等级
16进制为:82 38 00 0A 00 33 2F 73 79 73 2F 61 31 67 6D 6B 36 74 59 41 57 53 2F 54 65 73 74 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 00
其中
82 ?? 为固定报头
00 0A 为报文标识符为10的可变报头
00 33 2F 73 79 73 2F 61 31 67 6D 6B 36 74 59 41 57 53 2F 54 65 73 74 30 30 31 2F 74 68 69 6E 67 2F 73 65 72 76 69 63 65 2F 70 72 6F 70 65 72 74 79 2F 73 65 74 为订阅的主题,转换成string就为/sys/a1gmk6tYAWS/Test001/thing/service/property/set
00 为服务质量等级

发送连接服务器后,再发送订阅请求,如下
在这里插入图片描述
返回: 90 03 00 0A 01
订阅成功

返回值为 00 表示最大QOS 0
返回值为 01 表示成功 最大QOS 1
返回值为 02 表示成功 最大QOS 2
返回值为 80 表示失败

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值