开发者学堂课程【嵌入式之 RFID 开发与应用2020版:MQTT 通信特点】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/665/detail/11172
MQTT 通信特点
内容简介
一、MQTT 协议的中心
二、MQTT 主题模式
三、MQTT 总结分析
本节内容我们学习 MQTT 的通信特点
一、MQTT 协议的中心
从功能上分类 MQTT 协议的中心是 MQTT 服务器或代理(broker)
首先是 broker,可以称作 MQTT 服务器或 hub,用来连接各个终端或者客户端。第二是 publish,指数据的发布端,把信息发给指定服务器,再者是 subscribe 是订阅方,向服务器订阅发布的信息,主题和内容,当然订阅方也可以发布信息,数据的发布端也可以订阅信息。所以服务器就类似于中介,完成了所有有需求客户端数据的来往,交互,发布。
基于上述,用户可以使用 MQTT 构建一个传感器网络,以服务器为中心,发布订阅为客户端,可以很方便的完成传感网络的建立,而且传感网络可以很庞大,因为本身服务器的特点就是实现成千上万客户端的接入,其中各种传感器都能够以其传感器独有的消息形式发布传感器值即发送信息的格式自己来约定,比如哪个表示产品,名称是什么,终端设备名是什么等,订阅程序能够订阅不同的消息,以据此采取措施,MQTT 代理将处理从发布程序到订阅程序的转发消息。
MQTT 服务器除了收集转发数据,还可以进行数据处理和存储,例如,实时存储共享单车车辆运行位置、电池用量、状态信息等数据,以及对总体的车辆数据进行计算和统筹管理,甚至为一些聊天工具提供平
台服务。
二、MQTT 主题模式
整个通信过程除了刚才学习的三个模块,另外通信是以主题为模式,即发布的任何信息都必须要有主题,就像新闻有标题,然后有正文。
1.MQTH 是通过主题对消息进行分类的
2.主题本质上就是一个 UTF-8 的字符串(主题和内容都是)
3.主题可以通过反斜杠表示多个层级关系(类似于文件夹)
4.主题并不需要创建,直接使用就是了
5.主题还可以通过通配符进行过滤(支持层级管理的过滤方式)
6.+可以过滤一个层级
7.*只能出现在主题最后表示过滤任意级别的层级
举个例子:
➢building -b/floor- 5: 代表 B 楼 5 层的设备
➢+/floor-5: 代表任何一个楼的 5 层的设备
➢building-b/*: 代表 B 楼所有的设备
表示园区有很多栋楼,有 a 栋,b 栋等,每一栋都有很多层,floor1,floor2,floor3 等,每一层都有传感器比如空调,烟雾传感器。+ 表示可以过滤一个层级,如果订阅 building -b/floor- 5 表示 B 楼 5 层的传感器,则 +/floor-5 代表任何一个楼的 5 层的设备,也可以使用 * 过滤,要注意它只能在主题结尾处,代表过滤剩余层级关系,比如 building-b/* 表示 b 栋所有传感器都过滤出。过滤这种方式不适用于发布信息,主要用于订阅主题,就是获取信息的时候。
三、MQTT 总结分析
1.MQTT中有 3 个角色
➢发布者 Publisher
➢订阅者 Subscriber
➢代理 Broker(服务器)
其实三者之间,把发布者和订阅者称为客户端,服务端可以发布信息,服务端可以针对某个主题发布订阅。
2.MQTT 这种结构替代了传统的客户端/服务器模型,可以实现以下解耦
(1)空间解耦,发布者和订阅者不需要知道对方。
(2)时间解耦,发布者和订阅者不需要同时运行。
(离线消息服务器会保存)
(3)同步解耦,发布和接收都是异步通讯,不需要同时在,无需
停止任何处理。
以上就是 mqtt 的一些特点,这些特点也符合网络环境复杂,很好的结合了物联网,mqtt 在现时代得到了很好的运用。