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

如何查看Mosquitto MQTT服务器上的持久客户端会话?

获取Mosquitto 2.0.17的活跃持久会话信息

针对你的需求,Mosquitto 2.0.x版本确实没有通过$SYS主题直接暴露单个持久会话的详情,但可以通过以下两种方式获取所需信息:

1. 使用自带的mosquitto_ctrl命令行工具

这是最直接的方式,Mosquitto 2.0及以上版本内置了这个管理工具,无需额外安装:

  • 获取持久会话总数:
    mosquitto_ctrl sessions count
    
  • 列出所有持久会话的详细信息(包括客户端ID/会话ID、活跃状态、订阅数量、最后活动时间等):
    # 如果Broker开启了认证,需要添加用户名密码参数
    mosquitto_ctrl -u <你的管理用户名> -P <你的管理密码> sessions list
    # 无认证的情况下直接执行
    mosquitto_ctrl sessions list
    
    输出结果里的clientid就是你要找的会话名称,active字段标识该会话是否处于活跃状态(客户端在线)。

2. 通过$SYS主题获取会话总数

虽然$SYS没有单个会话的详情,但可以获取持久会话的总数:

  • 确保Mosquitto配置文件中开启了sys_interval(默认可能已开启,设为非0值,比如sys_interval 10表示每10秒更新一次$SYS主题)
  • 订阅$SYS/broker/sessions/count主题,即可获取当前所有持久会话的数量(包括活跃和离线保留的)

注意事项

  • MQTT协议中,持久会话(cleanSession=false)与客户端ID一一绑定,所以会话名称就是客户端ID
  • 如果客户端离线但会话未被清理(未达到session_expiry_interval设置的超时时间),该会话会被保留在Broker中,直到超时或客户端再次连接

内容的提问来源于stack exchange,提问作者Stefano Cucchi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 23:53:18