固定报头格式如下
文章插图
固定报头的0-3位为标志位 , 第一字节的4-7位的值指定了报文类型 。
报文类型值描述CONNECT1客户端向代理发起连接请求CONNACK2连接确认PUBLISH3发布消息PUBACK4发布确认PUBREC5发布收到(QoS2)PUBREL6发布释放(QoS2)PUBCOMP7发布完成(QoS2)SUBSCRIBE8客户端向代理发起订阅请求SUBACK9订阅确认UNSUBSCRIBE10取消订阅UNSUBACK11取消订阅确认PINGREQ12PING请求PINGRESP13PING响应DISCONNECT14断开连接
实际上 这些类型也是 MQTT协议中定义的一些方法(也被称为动作) , 来于表示对确定资源所进行操作 。这个资源可以代表预先存在的数据或动态生成数据 , 这取决于服务器的实现 。通常来说 , 资源指服务器上的文件或输出 。
MQTT协议实现方式实现MQTT协议需要客户端和服务器端通讯完成 , 在通讯过程中 , MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe) 。其中 , 消息的发布者和订阅者都是客户端 , 消息代理是服务器 , 消息发布者可以同时是订阅者 。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
1)Topic , 可以理解为消息的类型 , 订阅者订阅(Subscribe)后 , 就会收到该主题的消息内容 (payload)
2)payload , 可以理解为消息的内容 , 是指订阅者具体要使用的内容(限制大小) 。
MQTT 基于订阅与发布的消息模型MQTT 消息发送与接收的流程:
- ClientA 链接到 Broker;
- ClientB 链接到 Broker , 并订阅主题 Topic1;
- ClientA 发送给 Broker 一条消息 , 主题为 Topic1;
- Broker 收到 ClientA 的消息 , 发现 ClientB 订阅了 Topic1 , 而后将消息转发到 ClientB;
- ClientB 从 Broker 接收到该消息 。
关于 MQTT 的基础 , 阿粉就了解了这么多了 , 等以后阿粉学习新的关于 MQTT 的 , 阿粉再继续分享给大家 。
推荐阅读
- 你对海南的酒文化了解多少
- 一文搞懂HTTP,TCP,UDP,Socket,WebSocket
- 一文让你彻底搞清楚,Linux零拷贝技术的那些事儿
- 翡翠|了解清楚翡翠的品种,才会知道它的价值范围,购买时不会出糗
- 翡翠|想了解翡翠,这些至理名言要牢记
- 一文读懂所有HTTP状态码含义
- HDMI和DP区别在哪里?电脑连接线怎么选,一文看懂连接线的历史
- 需要了解的一项攻击技术-高隐匿、高持久化威胁
- 你了解域名怎样挑选吗?有哪些方法?
- 你对甘龙玉溪收藏市场了解多少