开发者社区 > 云原生 > 消息队列 > 正文

MQTT管控端发的消息会保留离线消息吗?

MQTT管控端发的消息会保留离线消息吗?

展开
收起
cuicuicuic 2024-01-04 09:42:28 87 0
3 条回答
写回答
取消 提交回答
  • 是的,MQTT管控端发的消息会保留离线消息。

    MQTT支持会话保存(cleanStart)、会话超期(sessionExpire)、Qos等设置,可以实现移动端弱网络(或网络断开后再重连)的离线消息接收。

    2024-01-06 11:46:10
    赞同 展开评论 打赏
  • SendMessage 是发送消息,没有离线消息的讲法,可以先看下我上面贴的文档https://help.aliyun.com/zh/apsaramq-for-mqtt/product-overview/limits?spm=a2c4g.11186623.0.i2 ,此回答整理自钉群“阿里云 微消息队列 MQTT产品咨询群”

    2024-01-04 11:52:14
    赞同 展开评论 打赏
  • MQTT管控端发的消息会保留离线消息,具体取决于客户端和服务器的设置。

    MQTT是一种轻量级的发布/订阅消息传输协议,广泛应用于物联网领域。在MQTT协议中,客户端与服务器之间建立连接后,服务器会为每个客户端维护一个会话。会话可以设置为持久会话或临时会话。

    如果会话设置为持久会话,那么在客户端断开连接时,会话仍然保持并保存离线消息,直到会话超时注销。这样可以确保消息只会被客户端接收一次,即QoS=2(“只有一次”)的保证。如果会话设置为临时会话,那么在客户端断开时,会话自动销毁。

    此外,在MQTT协议中,客户端还可以通过订阅QoS级别的设置来控制离线消息的接收。例如,QoS=0表示至多一次,即消息可能会被客户端多次接收;QoS=1表示至少一次,即消息至少会被客户端接收一次,但可能会被接收多次;QoS=2表示只有一次,即消息只会被客户端接收一次。

    综上所述,MQTT管控端发的消息是否保留离线消息取决于客户端和服务器的设置。如果客户端使用持久会话并设置合适的QoS级别,那么离线消息将会被保留并传递给客户端。

    2024-01-04 11:26:48
    赞同 展开评论 打赏
问答分类:
问答标签:
相关产品:

多个子产品线联合打造金融级高可用消息服务以及对物联网的原生支持,覆盖多行业。

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载