MQTT
- 精简
- 发布 订阅模式:一对多的信息发布
- 支持连续的会话控制
- 客户端算力低
- 服务质量:至多一次、至少一次、只有一次
- 三种身份:发布者、订阅者、代理(服务器)
- Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
- payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
- 建立连接之后,提供一个基于TCP的连接,数据通过MQTT发送时候,MQTT会把服务质量与主题名相关联。
- 客户端:
- 发布订阅其他客户端的信息
- 断开服务器连接
- MQTT服务器
- 接受客户网络请求
- 出来客户端的订阅、退订
- 处理订阅信息
- MQTT中的订阅、主题、会话
- 订阅:主题筛选器、最大服务质量。会与会话关联
- 会话:连接后就是一个会话
- 主题名:程序消息的标签,标签和服务器的订阅匹配
- 主题筛选器:主题名通配符筛选器,订阅所匹配的多个主题。
- MQTT协议中的方法:(动作)对资源所进行操作。
- MQTT协议数据包结构
- 固定头:
- 第一个字节:保留位
- 第二个字节:变长头部+消息体的总大小
- 可变体
- 协议名
- 协议级别
- 连接标志:8bytes
- 保持连接
- 消息体(有效载荷):*:设备名称、#:产品密钥:
- 客户端标识符
- 用户名
- 密码:通过哈希加密
- 服务质量(使用QOS0)
- 0: 最多发送一次
- 1:至少发送一次
- 2:就发送一次
- 固定头: