7、MQTT协议:特性、变体与安全实践

MQTT协议:特性、变体与安全实践

1. MQTT订阅与连接基础
  • 订阅返回码 :MQTT订阅操作有不同的返回码,代表不同的订阅结果,具体如下表所示:
    | 返回码 | 含义 |
    | ---- | ---- |
    | 0 | 订阅成功;最大QoS级别为0 |
    | 1 | 订阅成功;最大QoS级别为1 |
    | 2 | 订阅成功;最大QoS级别为2 |
    | 128 | 订阅失败 |

订阅失败通常是由于主题名称格式错误或缺乏适当的访问权限。客户端可以随时通过向代理发送UNSUBSCRIBE数据包来取消订阅,代理会返回具有相同packetId的UNSUBACK数据包以确认取消订阅请求。

  • 连接与会话 :在发送或接收消息之前,MQTT客户端需要与代理建立连接。连接会一直保持打开状态,直到客户端发送断开连接消息,除非网络问题导致连接中断。默认情况下,代理不会持久保存会话信息,这意味着订阅者每次连接时都需要重新建立订阅。不过,MQTT规范定义了持久会话的概念,使用持久会话时,代理会跟踪客户端的所有订阅,并在特定QoS级别下存储相关消息。

以下是使用持久会话的一些合理原因:
1. 解决方案涉及受限客户端,通过持久会话可以延长电池寿命或减少带宽消耗。
2. 使用场景要求订阅客户端不能错过任何一条消息。
3. 使用场景涉及“至少一次”(QoS 1)或“恰好一次”(QoS 2)的消息传递。

相反,对于仅发布消息(无订阅)且使用场景允许消息丢失的客户端,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值