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

使用mosquitto_sub命令时如何查看消息的MQTT属性

实现方案

完全可以通过mosquitto_sub的原生参数实现,不需要额外抓包或者第三方工具,具体操作如下:

  • 首先确认协议版本:MQTT 3.1/3.1.1协议本身没有定义消息级别的扩展属性,只有MQTT 5.0协议支持传输消息属性、自定义用户属性,需要先确认你的MQTT broker、消息发布端都启用了MQTT 5.0协议支持。
  • 执行订阅命令时添加两个核心参数:
    1. -V 5:强制mosquitto_sub使用MQTT 5.0协议和broker建立连接,默认情况下部分版本的客户端会默认使用MQTT 3.1.1协议连接,无法接收属性字段。
    2. -F <输出格式>:自定义消息输出模板,把需要的属性字段打印出来。

最简便的全属性查看方式

直接用内置的JSON输出占位符%j,命令示例:

mosquitto_sub -t "你要订阅的主题名" -V 5 -F "%j"

执行后收到的每条消息都会输出为标准JSON结构,除了消息内容、主题、QoS、保留标记等基础信息外,会完整列出所有MQTT 5.0属性,包括消息过期时间、内容类型、响应主题、订阅ID,以及发布端自定义的所有用户属性键值对。

自定义属性输出格式

如果不需要全量信息,只想打印指定字段,可以用对应占位符拼接输出模板,常用占位符如下:

  • %t:消息所属主题
  • %p:消息正文内容
  • %x:所有用户自定义属性键值对
  • %C:消息的内容类型(content type)属性
  • %E:消息过期时间属性
  • %q:消息的QoS等级

示例命令:

mosquitto_sub -t "sensor/data" -V 5 -F "主题:%t | QoS:%q | 自定义属性:%x | 内容:%p"

注意:如果你的Mosquitto客户端版本低于1.5,不支持MQTT 5.0和-F参数,需要先升级客户端版本后再使用上述命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 22:16:19