MQTT协议入门学习
  19qMgiCiiRfc 2023年11月02日 54 0

一、介绍

MQTT是一种基于发布/订阅模式轻量级通讯协议。MQTT最大优点在于用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。MQTT 与 HTTP 一样,MQTT 运行在传输控制协议/互联网协议 (TCP/IP) 堆栈之上。

二、发布和订阅

发布和订阅:MQTT使用的发布、订阅消息模式、它提供了一对多的消息分发机制,从而实现与应用程序的解耦。这是一种消息传递模式。消息部署直接从发送器发送到接收器,而是由MQTT server分发的。

客户端可以发布消息也可以订阅消息或者两者兼而有之。

客户端(也称为节点)是一种智能设备,如微控制器或具有 TCP/IP 堆栈和实现 MQTT 协议的软件的计算机。

消息在允许过滤的主题下发布。主题是分层划分的 UTF-8 字符串。不同的主题级别用斜杠/作为分隔符号。

三、Qos级别

服务质量是 MQTT 的一个重要特性。当我们使用 TCP/IP 时,连接已经在一定程度上受到保护。但是在无线网络中,中断和干扰很频繁,MQTT 在这里帮助避免信息丢失及其服务质量水平。这些级别在发布时使用。如果客户端发布到 MQTT 服务器,则客户端将是发送者,MQTT 服务器将是接收者。当MQTT服务器向客户端发布消息时,服务器是发送者,客户端是接收者。

Qos 0

这一级别会发生消息丢失或重复,消息发布依赖于底层TCP/IP网络。

Qos 1

Qos 1承诺消息将至少传送一次给订阅者。

QoS  2

使用Qos2我们保证消息仅传送到目的地一次。为此带有唯一消息ID的消息会存储两次,首先来自发送者,然后是接收者。QoS 级别 2 在网络中具有最高的开销,因为在发送方和接收方之间需要两个流。

四、MQTT数据包结构

固定头:存在于所有MQTT数据包中,表示数据包类型及数据包的分组类标识;

可变头:存在于部分MQTT数据包中,数据包类型决定了可变头是否存在及其具体内容;

消息体:存在于部分MQTT数据包中,表示客户端收到的具体内容;

Payload消息体是MQTT数据包的第三部分,CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE四种类型的消息 有消息体:

Payload消息体

CONNECT,消息体内容主要是:客户端的ClientID、订阅的Topic、Message以及用户名和密码

SUBSCRIBE,消息体内容是一系列的要订阅的主题以及QoS。

SUBACK,消息体内容是服务器对于SUBSCRIBE所申请的主题及QoS进行确认和回复。

UNSUBSCRIBE,消息体内容是要订阅的主题。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
19qMgiCiiRfc