物联网学习——MQTT理论

1、MQTT协议模型

        MQTT是一种基于发布/订阅publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。

        发布者与订阅者之间通过服务器进行通信,通信的关键在于主题(topic),当发布者发出一个主题时,若订阅者有订阅该主题,则自动接收该主题的内容。

2、CONNECT控制报文

(1)固定报文

        固定报头由两个字节组成,第一个字节的7-4位为 协议类型,3-0位为标志位。 第二个字节表示剩余长度。剩余长度表示当前报文剩余部分的字节数,包括可变报头和负载的数据。剩余长度不包括用于编码剩余长度字段本身的字节数。

(2)可变报文

可变报文包括协议名、协议级别、连接标志、保持连接四部分。

(3)有效载荷

        有效载荷包含客户端ID、用户名、密码、Qos等级、主题等。在单片机传输时都需转化为十六进制数据,发送数据时需要发送该部分数据长度,为两个字节。 密码需要哈希加密,在阿里云里需要加入密钥。

3、有效长度

        剩余长度字段使用一个变长度编码方案,对小于128的值它使用单字节编码。更大的值按下面的方式处理。低7位有效位用于编码数据,最高有效位用于指示是否有更多的字节。剩余长度字段最大4个字节。

        假设剩余长度为300,低位在前,高位在后。则1010 1100 0000 0010,即AC 02。

4、固定报文与可变报文

连接设备:10 ?? 00 04 4D 51 54 54 04 C2 00 64+客户端ID、用户名、密码

订阅:82 ?? 00 0A+主题

取消订阅:A2 ?? 00 0A+主题

发布:30 ?? +可变报文(主题)+内容(json格式)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值