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

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

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

展开
收起
真的很搞笑 2024-01-04 09:42:28 300 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
    赞同 展开评论 打赏
问答分类:
问答标签:
相关产品:

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

  • 云消息队列 MQ
  • 相关电子书

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