基于mqtt的推送服务器.pptx
基于mqtt的推送服务器,1,大纲,MQTT介绍MQTT主题MQTT特殊消息MQTT消息QOS推送服务器,2023/4/24,2,MQTT介绍(一),MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是一个轻量的发布订阅模式消息传输协议,专门针对低带宽和不稳定网络环境的物联网应用设计。特点开放消息协议,简单易实现发布订阅模式,一对多消息发布基于TCP/IP网络连接1字节固定报头,2字节心跳报文,报文结构紧凑消息QoS支持,可靠传输保证,2023/4/24,3,MQTT介绍(二),MQTT支持TCP和WebSocket两种协议作为传输层。mosquitto 默认没有打开WebSocket支持,需要修改config.in打开WebSocket支持,再进行编译。,2023/4/24,4,MQTT主题,MQTT协议基于主题(Topic)进行消息路由,主题(Topic)类似URL路径,例如:sensor/10/temperaturesensor/+/temperature$SYS/broker/metrics/#主题(Topic)通过/分割层级,支持+,#通配符:+:表示通配一个层级,例如a/+,匹配a/x,a/y#:表示通配多个层级,例如a/#,匹配a/x,a/b/c/d订阅者可以订阅含通配符主题,但发布者不允许向含通配符主题发布消息。,2023/4/24,5,MQTT特殊消息,MQTT遗愿消息(Last Will):MQTT客户端向服务器端CONNECT请求时,可以设置是否发送遗愿消息(Will Message)标志,和遗愿消息主题(Topic)与内容(Payload)。MQTT客户端异常下线时(客户端断开前未向服务器发送DISCONNECT消息),MQTT消息服务器会发布遗愿消息。MQTT保留消息(Retained Message):MQTT客户端向服务器发布(PUBLISH)消息时,可以设置保留消息(Retained Message)标志。Broker会存储每个Topic的最后一条保留消息及其Qos,当订阅该Topic的客户端上线后,Broker需要将该消息投递给它。保留消息有两种清除方式:客户端向有保留消息的主题发布一个空消息:消息服务器设置保留消息的超期时间。,2023/4/24,6,MQTT消息QOS(一),MQTT有三种消息发布服务质量:0:至多一次1:至少一次2:只有一次,2023/4/24,7,MQTT消息QOS(二),MQTT发布消息QoS保证不是端到端的,是客户端与服务器之间的。订阅者收到MQTT消息的QoS级别,最终取决于发布消息的QoS和主题订阅的QoS。,2023/4/24,8,推送服务器(一),2023/4/24,9,整体架构:,推送服务器(二),2023/4/24,10,内部逻辑:,