You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Mosquitto保留会话?默认为何丢弃会话?

Mosquitto无法保留MQTT会话问题排查

我使用paho-mqtt(Python客户端)尝试让Mosquitto在客户端重连时保留会话,但每次使用相同用户名、密码、客户端ID连接时,会话都未被保留。

Mosquitto配置

我的配置非常简单:

listener 1883
password_file /mosquitto/config/passwords

除了为该用户创建包含用户名和密码的密码文件外,没有其他额外配置,仅使用Docker镜像默认配置。

已做的排查

我已按照MQTT 5标准对会话进行字节级追踪并核对参数:

  • 客户端使用MQTT 5协议连接
  • 客户端CONNECT报文包含正确的参数:
    • 用户名
    • 密码
    • 客户端ID abcde
    • clean session标志(0,对应MQTT 5的clean_start=False)
    • 心跳值(120)
  • 服务器CONNACK报文返回:
    • 未分配客户端ID(符合预期)
    • Session present值为0
  • 该paho-mqtt连接可正常与其他客户端通过Mosquitto通信
  • 尝试过未发送DISCONNECT报文的情况下断开连接

连接代码

以下是我的连接代码:

import paho.mqtt.client as mqtt

mqttc = mqtt.Client(mqtt.CallbackAPIVersion.VERSION2, protocol=mqtt.MQTTv5, client_id="abcdef")
mqttc.on_connect = on_connect
mqttc.on_message = on_message
mqttc.username_pw_set("guest", "guest")
mqttc.connect("localhost", 1884, clean_start=False, keepalive=120)

我多次使用相同客户端ID连接并创建订阅,但Mosquitto默认不保留会话,是否遗漏了配置项?


内容的提问来源于stack exchange,提问作者Philip Couling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:12:07