MQTT协议理解

MQTT协议理解

参考:https://blog.csdn.net/zhuo_lee_new/article/details/89138834

使用场景

MQTT协议是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布,广泛运用于机器与机器(M2M)通信和物联网(IoT)通讯中。

运行模式

MQTT协议中有三种角色:

  1. 代理
  2. 发布者
  3. 订阅者

发布者在某个主题下发布消息,代理会将这个消息分发给所有订阅这个主题的订阅者。就好比你关注了某个帖子,那么这个帖子的所有回帖你都会收到。这是种可以实现多对多通讯的方式。一般情况下,代理由服务器实现,客户端可以作发布者或者订阅者或者兼任两者。

在这里插入图片描述

重要参数

1.QOS

服务质量是 MQTT 的一个重要特性。当我们使用 TCP/IP 时,连接已经在一定程度上受到保护。但是在无线网络中,中断和干扰很频繁,MQTT 在这里帮助避免信息丢失及其服务质量水平。

QOS0:最多发一次消息,不管你有没有收到
QOS1:最少发一次消息,需要收到你的ack
QOS2:只发一次消息,并保证你收到

2.Client id

Connect报文必须的信息,broker用来区分不同的客户端。作为客户端可以不提供(clean session必须为true),broker会随机分配一个给它。

3.Keep alive

保活心跳

4.Clean session

此配置项如果为true,client端每次重连都会重新申请session,broker端就不能够判断出此设备是以前已经连接过的设备了.
如果配置为false,client端在上线并订阅主题后,broker会查找设备在离线时没有接收到的消息,视情况发送给client

在这里插入图片描述

5.retain

这个标志位被置位,代表要求服务器保留最新的这条消息,有新的订阅者连接时向他推送。

6.Will

遗嘱消息是是在发布者异常断开时发送给订阅者的消息。在建立与服务端的连接时约定好遗愿消息,服务端会存储这个消息,当发布者非正常断线时则会向约定好的主题发送遗愿消息。如果是发布者主动断开,则不会发will消息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tangYi0_0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值