MOTT初识
什么是MQTT
- MQTT,英文名称Message Queuing Telemetry Transport,中文即消息队列遥测传输协议,是一种基于发布/订阅模式“轻量级”通讯协议,该协议构建于TCP/IP上
- MQTT是一个低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备和移动应用有广泛的应用
MQTT特点
- 功能精简
- 发布/订阅模式,方便消息在传感器之间传递
- 允许用户动态创建主题
- 传输量降到最低
- 带宽、延迟时间和网络的稳定性考虑
- 支持连续的会话控制
- 提供服务质量管理(0最多一次;1最少一次;2有且只有一次)
- 灵活性--数据格式不做强求
MQTT原理
- 实现方式
- 实现MQTT需要客户端和服务端通讯完成,在通讯过程中,MQTT中有三种身份
- 发布者(Publish)
- 代理(服务器:Broker)
- 订阅者(Subscribe)
- 其中,消息的发布者和订阅者是客户端,消息代理是服务器,消息发布者可以同时是订阅者
- MQTT传输的消息
- Topic:主题,订阅者订阅后,就会收到该主题的消息内容
- payload:消息的内容,是指订阅者具体要使用的内容
- 实现MQTT需要客户端和服务端通讯完成,在通讯过程中,MQTT中有三种身份
- 网络传输与应用消息
- 建立客户端到服务器的连接,提供两者之间一个有序的、无损的、基于字节流的双向传输
- 当应用数据通过MQTT网络发送时,MQTT会把与之相关的服务质量和主题名相关联
- MQTT客户端
- 建立与服务器的网络连接
- 发布信息
- 订阅信息
- 退订或删除应用程序信息
- 断开与服务器连接
- MQTT服务器
- 也称“消息代理”,可以是一个应用或一台设备,它是位于消息发布者和订阅者之间
- 接收来自客户端的网络连接
- 接收客户发布的应用信息
- 处理来自客户端的订阅和退订请求
- 向订阅的客户转发应用程序消息
MQTT术语
- 订阅Subscription
- 订阅包含主题筛选器和最大服务质量,订阅与一个会话关联,一个会话可以包含多个订阅,一个会话中的每个订阅都有一个不同主题的筛选器
- 会话Session
- 每个客户端与服务器建立连接后就是一个会话,客户端和服务器端之间有状态交互,会话存在于一个网络之间,也可能在客户端和服务器之间跨越多个连续的网络连接
- 主题名Topic Name
- 连接到一个应用程序消息的标签,该标签与服务器的订阅相匹配,服务器会将消息发送给订阅是所匹配标签的每个客户端
- 主题筛选器Topic Filter
- 一个对主题名通配符筛选器,在订阅表达式中使用,表示订阅所匹配到的多个主题
- 负载Payload
- 消息订阅者所具体接收的内容
MQTT方法
- Connect 等待与服务器建立连接
- DisConnect等待MQTT客户端完成所做的工作,并与服务器断开TCP/IP会话
- Subscribe等待订阅完成
- UnSubscribe等待服务器取消客户端的一个多多个topics订阅
- Publish客户端发送消息请求 ,发送完成后返回应用程序线程
MQTT数据包
- 一个MQTT数据包由固定头、可变头、消息体三部分构成
- 固定头(Fixed header),存在于所有MQTT数据包中,表示数据包类型及数据包的分组类标识
- 可变头(Variable header),存在于部分MQTT数据包中,数据包类型决定了可变头是否存在及具体的内容
- 消息体(Payload),存在于部分MQTT数据包中,表示客户端收到的具体内容
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/52386.html