Quality of service(MQTT)

7 篇文章 5 订阅

  想查看英文原文的请点击原文网址。本文是paho中讲述Qos的,其中重要的一点就是当发送端和接收端的Qos不一致时,取Qos的级别小的为准。水平有限,如有翻译不当之处,欢迎指正。

服务质量

  MQTT 协议为在客户端和服务器之间的消息传递提供了三种服务质量: “最多一次”、”至少一次” 和 “只有一次”。

  服务质量 (QoS) 是正在发布的单个消息的属性。应用程序通过将MQTTClient_message. qos字段设置为所需的值来设置特定消息的QoS。

  订阅客户端可设置QoS的级别,服务端根据客户端的设置发送消息。通过MQTTClient_subscribe ()MQTTClient_subscribeMany () 函数设置级别。因而, 转发给订阅端的消息的,其QoS可能与原始发布端为消息提供的QoS不同,两个值中的下限用于转发消息。

三个级别分别为:
  QoS0,最多一次:消息最多发送一次或可能一次都没有。消息跨网络的传播不被确认,也不会存储。如果客户端断开连接或服务器出故障,消息就可能会丢失。Qos0是最快的传输方式,有时它被称为”开火然后遗忘”

  MQTT协议不要求服务器将QoS0的消息转发到客户端(好吧,这句话我去查了资料,也 没明白是什么意思,可能是我翻译有误)。如果客户端在服务器收到消息时已断开连接, 则消息可能会被丢弃, 具体取决于服务器的实现。

  QoS1, 至少一次: 消息总是传递至少一次。如果在发送端的收到确认之前出现故障, 消息可能会多次发送。消息必须在发送端本地存储,直到发送端收到由接收端发布的该消息的确认,消息存储起来以防需要再次发送。

  QoS2, 只有一次: 消息总是被发送有且只有一次。消息必须在发送端本地存储,直到发送端收到由接收端发布的该消息的确认,消息存储起来以防需要再次发送。消息存储起来以防需要再次发送。QoS2 是最安全, 但也是最慢的传输方式。使用比 QoS1 更复杂的握手和确认程序, 以确保不会发送重复的消息。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值