首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Watson IoT QoS1/2重试

Watson IoT QoS1/2重试
EN

Stack Overflow用户
提问于 2016-12-08 10:15:51
回答 1查看 88关注 0票数 0

如果Watson IoT broker发布了一条QoS1 o 2消息,但没有从客户端收到适当的确认,有人知道它会怎么做吗?它是否实现了超时(比如20秒左右),然后再次重新发送消息?看起来有些代理会这样做,而另一些只会在新连接上重新发送消息(当然,如果retain设置为1的话)。MQTT规范在这一点上有点含糊。

EN

回答 1

Stack Overflow用户

发布于 2016-12-08 15:30:18

对于尚未确认消息的客户端,该消息将被视为正在传输中,并且仅当该客户端断开连接并重新连接时才会发生消息重新传递(但仅当客户端是clean session =0时)

对于QoS1和2:至少一次(QoS1)

对于服务质量级别1 (QoS1),消息始终至少传递一次。如果在发送方收到确认之前出现故障,则可以多次传递一条消息。消息必须本地存储在发送方,直到发送方接收到接收方发布消息的确认。该消息被存储,以防必须再次发送该消息。

只有一次(QoS2)

“恰好一次”的服务质量等级2 (QoS2)是最安全但最慢的传输模式。消息始终只传递一次,并且还必须在发送方本地存储,直到发送方收到消息已由接收方发布的确认。该消息被存储,以防必须再次发送该消息。对于服务质量级别2,使用比级别1更复杂的握手和确认序列,以确保消息不会重复

MQTT保持活动间隔

MQTT保持活动时间间隔(以秒为单位)定义了在客户端和代理之间没有通信的情况下可以经过的最长时间。MQTT客户端必须确保在没有与代理进行任何其他通信的情况下,发送PINGREQ数据包。keep alive间隔允许客户端和代理检测网络故障,从而导致连接断开,而无需等待到达TCP/IP超时期限。

如果Watson IoT Platform MQTT客户端使用共享订阅,则keep alive间隔值只能设置为1到3600秒之间。如果请求的值为0或大于3600,则Watson IoT Platform broker会将保持活动间隔设置为3600秒。

保留的消息

Watson对IoT消息传递的保留消息功能提供了有限的支持。如果从设备、网关或应用程序发送到Watson IoT Platform的MQTT消息中的保留消息标志设置为true,则该消息将作为未保留消息处理。Watson IoT Platform组织无权发布保留的邮件。当设置为true时,Watson IoT Platform服务将覆盖保留消息标志,并按照保留消息标志设置为false的方式处理消息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41030673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档