ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

MQTTX CLI 能力全景速查:1.13.0 全部命令、注册旗标与版本特例实战指南

MQTTX CLI 能力全景速查:1.13.0 全部命令、注册旗标与版本特例实战指南 开发工具物联网后端【免费下载链接】MQTTXA Powerful and All-in-One MQTT 5.0 client toolbox for Desktop, CLI and WebSocket.项目地址https://gitcode.com/gh_mirrors/mq/MQTTX点击查看免费下载MQTTX CLI 是 EMQ 开源的跨平台 MQTT 命令行客户端本指南基于仓库中skills/mqttx-cli/references/capabilities.md这份「能力地图」文档结合 cli/src/index.ts 的命令注册源码为读者完整呈现MQTTX CLI 1.13.0中所有可执行命令、全部已注册旗标flag及其适用命令范围、以及版本特有缺陷与维护验证基线。读完本文你将能精确判断任一参数在哪条命令上可用、哪些组合在协议层面不合法、哪些已知边界需要绕开从而在实际连接、发布订阅、性能测试与数据仿真任务中不再依赖猜测。能力地图的定位与成文基线capabilities.md是一张面向开发者和 AI Agent 的「能力覆盖地图」capability map它的校验基线非常明确覆盖基线仓库cli/src/index.ts中的命令注册与其各处理器handlers对应版本1.13.0。校验方式所有已注册的可执行命令都被统一路由到本文的表单中旗标表格与命令注册逐项比对。权威来源文档明确提示「以安装后实际输出的--help为准」因为发布渠道可能存在差异表格记录的是「可用性」并不承诺每个组合都合法或没有 bug。从源码看命令注册集中在 cli/src/index.ts 的Commander类中index.ts基于commander库构建根命令名为mqttx描述为 An MQTT client for the command lineindex.ts。所有命令都设置了.allowUnknownOption(false)即遇到未注册参数会直接报错退出——这正是能力地图能做到「逐项比对」的前提。命令全景八大命令家族capabilities.md 将全部已注册命令归为以下几组命令指引文档conn、pub、sub基础工作流、连接与认证、MQTT 特性、载荷与文件bench conn、bench pub、bench sub基准测试与仿真simulate、ls --scenarios仿真与发现init、check配置与工具命令根--help、--version、help [command]、bench --help帮助与版本对照源码注册位置可以确认这张表与实际实现一一对应conn创建连接并连接到 MQTT Broker注册于 index.ts处理器为conn定义于 cli/src/lib/conn.ts。注意conn成功后会保持连接直到被外部终止。pub向主题发布一条消息注册于 index.ts处理器为pubcli/src/lib/pub.ts。sub订阅一个或多个主题注册于 index.ts处理器为subcli/src/lib/sub.ts。sub会持续监听直到被停止。bench conn / bench pub / bench sub性能测试三件套注册于 index.ts。其中bench pub的处理器为benchPubbench sub为benchSubbench conn为benchConn。simulate按内置或自定义场景发布仿真消息注册于 index.ts处理器为simulatePub默认主题模板为mqttx/simulate/%sc/%cindex.ts。ls按选项列出信息注册于 index.ts。ls --scenarios会扫描 cli/src/scenarios 目录下的所有.js场景文件并以表格输出名称与描述实现见 cli/src/lib/ls.ts。init交互式初始化配置文件index.ts处理器initConfig位于 cli/src/lib/init.ts。check检查更新index.ts处理器为checkUpdatecli/src/utils/checkUpdate.ts仅上报可用更新不执行安装。注册旗标总表所有已注册选项一览capabilities.md 引入了一个关键概念Network指全部七个联网命令——conn、pub、sub、bench conn、bench pub、bench sub、simulate。凡标注为 Network 的旗标在这七个命令上都可用标注了具体命令集合的旗标如--keepalive仅限conn、pub、bench conn、bench pub、simulate则不能想当然地用于其他命令。下表完整继承原文档的全部 79 项注册旗标右侧为适用命令与对应指南长选项适用命令指南--mqtt-versionNetwork连接用法--hostnameNetwork连接用法--portNetwork连接用法--client-idNetwork连接用法--no-cleanNetworkMQTT 特性--keepaliveconn、pub、bench conn、bench pub、simulate连接用法--usernameNetwork连接用法--passwordNetwork连接用法--protocolNetwork连接用法--pathNetwork连接用法--ws-headersNetwork连接用法--keyNetwork连接用法--certNetwork连接用法--caNetwork连接用法--insecureNetwork连接用法--alpnNetwork连接用法--reconnect-periodNetwork连接用法--maximum-reconnect-timesconn、pub、sub、bench conn、bench pub、bench sub连接用法--session-expiry-intervalNetworkMQTT 特性--receive-maximum别名--rcv-maxNetworkMQTT 特性--maximum-packet-sizeNetworkMQTT 特性--topic-alias-maximumNetworkMQTT 特性--req-response-infoNetworkMQTT 特性--no-req-problem-infoNetworkMQTT 特性--user-propertiesNetworkMQTT 特性--will-topicNetworkMQTT 特性--will-messageNetworkMQTT 特性--will-qosNetworkMQTT 特性--will-retainNetworkMQTT 特性--will-delay-intervalNetworkMQTT 特性--will-payload-format-indicatorNetworkMQTT 特性--will-message-expiry-intervalNetworkMQTT 特性--will-content-typeNetworkMQTT 特性--will-response-topicNetworkMQTT 特性--will-correlation-dataNetworkMQTT 特性--will-user-propertiesNetworkMQTT 特性--save-optionsNetwork配置用法--load-optionsNetwork配置用法--debugconn、pub、sub连接用法--authentication-methodNetwork连接用法--topicpub、sub、bench pub、bench sub、simulateMQTT 特性--messagepub、bench pub载荷用法--qospub、sub、bench pub、bench sub、simulateMQTT 特性--retainpub、bench pub、simulateMQTT 特性--duppub、bench pub、simulateMQTT 特性--stdinpub载荷用法--multilinepub载荷用法--line-modepub载荷用法--payload-format-indicatorpub、bench pub、simulateMQTT 特性--message-expiry-intervalpub、bench pub、simulateMQTT 特性--topic-aliaspub、bench pub、simulateMQTT 特性--response-topicpub、bench pub、simulateMQTT 特性--correlation-datapub、bench pub、simulateMQTT 特性--subscription-identifierpub、sub、bench pub、bench sub、simulateMQTT 特性--content-typepub、bench pub、simulateMQTT 特性--formatpub、sub载荷用法--conn-user-propertiespub、sub、bench pub、bench sub、simulateMQTT 特性--file-readpub、bench pub载荷用法--protobuf-pathpub、sub载荷用法--protobuf-message-namepub、sub载荷用法--avsc-pathpub、sub载荷用法--payload-sizepub、bench pub载荷用法--no_localsub、bench subMQTT 特性--retain-as-publishedsub、bench subMQTT 特性--retain-handlingsub、bench subMQTT 特性--verbosesub、bench pub、bench sub、simulate载荷用法--output-modesub载荷用法--file-writesub载荷用法--file-savesub载荷用法--delimitersub载荷用法--countbench conn、bench pub、bench sub、simulate基准与仿真--intervalbench conn、bench pub、bench sub、simulate基准与仿真--message-intervalbench pub、simulate基准与仿真--limitbench pub、simulate基准与仿真--splitbench pub基准与仿真--scenariosimulate基准与仿真--filesimulate基准与仿真--maximun-reconnect-timessimulate基准与仿真--scenariosls基准与仿真能力地图特别提醒某旗标缺席于某条命令的行就不能假定它在那个命令上可用。例如--keepalive不出现在sub行意味着 1.13.0 的sub与bench sub不暴露该参数详见 connections.md 的说明--debug只出现在conn、pub、sub三行基准与仿真命令不接受它。旗标背后的解析器实现这张总表不是纸面文档它直接对应 cli/src/utils/parse.ts 中一系列严格的参数解析器。理解这些解析器就能解释表格中许多「看起来可用但实际受限」的细节parseNumberparse.ts任何非数字输入都会立即打印失败信息并process.exit(1)。因此--subscription-identifier这类看似「可变参数」的旗标实际走的是标量数值解析——能力地图中关于sub --subscription-identifier的特例正是由此而来。parseProtocolparse.ts仅接受mqtt、mqtts、ws、wss四种取值与表格中--protocol的取值域一致。parseMQTTVersionparse.ts内部将3.1、3.1.1、5.0/5映射为数字3、4、5。这一映射同时决定了 options 文件中mqttVersion字段必须写成数字详见 configuration.md。parseKeyValuesparse.ts用户属性类参数--user-properties、--will-user-properties、--ws-headers等严格按key: value分隔符切分重复键自动聚合成数组——这也解释了为什么「值本身包含:时需要改用 options 文件对象」。parseQoSparse.ts校验范围 0–2且会累积成数组支持sub/bench sub的主题对齐 QoS。parseVariadicOfBooleanTypeparse.ts只接受字面量true/false对应--no_local、--retain-as-published的显式布尔值要求。parsePubTopicparse.ts发布主题含、#通配符会被直接拒绝并退出。parseFileReadparse.ts文件读取受 cli/src/utils/constants.ts 中MQTT_SINGLE_MESSAGE_BYTE_LIMIT 256MB的硬限制约束。parseFormatparse.ts仅接受base64、json、hex、cbor、binary、msgpack与 payloads.md 的六种格式一一对应。parseOutputModeparse.ts仅clean与default两种。parseAuthenticationMethodparse.tsSCRAM 认证方法只接受SCRAM-SHA-1、SCRAM-SHA-256、SCRAM-SHA-512。连接选项的组装逻辑集中在parseConnectOptionsparse.tsTLS 证书通过fs.readFileSync读入--key/--cert/--ca--insecure映射为rejectUnauthorized: false--alpn映射为ALPNProtocols--ws-headers仅在ws/wss下允许否则报错退出见parseWsHeadersparse.ts。值得注意的源码细节当--no-cleanclean: false且未显式给出--session-expiry-interval时MQTT 5 的会话过期时间会被强制设为0xFFFFFFFFparse.ts这与 mqtt-features.md 中「--no-clean默认会话过期0xFFFFFFFF」的说明完全吻合。版本特例与已知边界能力地图的核心价值之一是它如实记录了 1.13.0 实现中的六条版本特例version-specific checks这些在纯--help输出中看不出来但会在实际运行中踩坑simulate --maximun-reconnect-times拼写错误旗标拼写与运行时读取的属性不一致。源码中simulate注册的确实是拼错的--maximun-reconnect-timesindex.ts而其它命令使用正确的--maximum-reconnect-times。文档明确建议不要依赖该旗标控制有限运行改用外部截止时间deadline。sub --subscription-identifier使用标量数值解析器尽管--help宣称它是可变参数当前实现的parseNumber不会按主题累积多个标识符。可行的替代是每次调用传一个标量或通过带类型的 options 文件数组表达按主题的值。发布命令上注册了--subscription-identifier但协议不允许MQTT 5 规范禁止客户端发起的 PUBLISH 包携带订阅标识符属性。源码中pub、bench pub、simulate确实注册了该旗标如 index.ts但这是「可用性」不等于「协议合法」的典型例子——broker 甚至可能因此断开客户端。切勿将其用于合法发布。clean 输出绕过 schema 解码、并抑制就绪/部分错误日志--output-mode clean会再次格式化原始载荷而不是 schema 解码后的值同时隐藏连接/订阅就绪状态和部分错误某些连接失败路径甚至返回退出码 0。因此「退出码 0 clean 空输出」不能证明成功。管道多行输入绕过格式/schema 转换且有时序限制-s -Mstdin multiline在管道模式下逐行发送已缓冲内容不经过 format/schema 转换--file-write追加文件时会把字节转为文本不是无损二进制拼接。发布者/仿真器的%c主题展开与基准订阅不同bench pub/simulate用基础 client-ID 模板替换%c而bench sub用最终生成的每客户端 IDbench sub的「全部订阅完成」就绪提示可能在部分订阅被拒绝时仍出现。这些特例的共同处理原则是不要通过修改 CLI 代码来绕开限制而是选用文档给出的替代工作流如果无法可靠表达所需行为如实说明限制并采用最接近的受支持方案。维护与验证基线能力地图同时是一份维护文档记录了更新技能时的规范动作与本次修订的实测基线更新流程为新的发布版本更新本技能时需要①将命令注册与安装后的--help与本文表格比对②在改动示例前检查受影响的处理器实现③重新核对上述特例而非原样沿用为通用规则④在本机 broker 上用明确的边界和「非业务主题」实际验证命令组合并记录哪些组合真正被验证过。文档特别强调「文档覆盖」与「实测互操作覆盖」是两件独立的事。本次修订的验证基线官方 Linux x64 CLI 1.13.0 隔离的 Mosquitto 2.0.22 监听器。实测覆盖了 MQTT 3.1/3.1.1/5.0、TLS 与 mTLS、WebSocket 请求头、通过 options 文件的密码认证、全部六种格式、Protobuf/Avro、随机载荷、stdin 与文件输入、管道/TTY 行模式、编号文件保存与追加分隔符、MQTT 5 发布/订阅属性、清除保留消息、持久会话投递、延迟遗嘱、全部三个基准命令、文件拆分、四个内置场景、自定义生成器、YAML 保存/加载以及check。第一阶段检查还验证了截止时间、clean 流解析与清理。未被本次实测覆盖针对增强认证 broker 的 SCRAM、服务特定的 ALPN、WSS、交互式init补全、macOS/Windows 执行这些仅通过源码/帮助核对了旗标可用性未做活体验证。文档要求在目标环境中自行确认不得仅凭语法检查就宣称互操作成功。另外会话/遗嘱验证使用的是单独的匿名单监听器 broker因为组合的认证监听器 fixture 未能投递那些消息——broker 配置属于证据的一部分而非 CLI 缺陷诊断。结合实战如何快速核对与落地能力地图的日常用法是「先查表、再翻专项指南」。例如想用 WebSocket 连接查表确认--protocol、--path为 Network 旗标然后按 connections.md 的示例执行mqttx conn -h localhost -p 8083 -l ws --path /mqtt -V 5.0 --reconnect-period 0--ws-headers解析要求key: value且冒号后带空格值含分隔符时改用 options 文件。想验证一次发布/订阅往返按 workflows.md 的六步流程先启动带截止时间的sub并等待Subscribed to ...就绪确认再发布唯一标记消息最后匹配精确主题与标记。想做压力测试查表确认--count、--interval、--limit等基准旗标并按 benchmarks-and-simulation.md 明确设置连接数、速率、消息上限与运行时长——默认值是1000 连接 无限发布必须显式给出边界。想保存/复放参数--save-options/--load-options支持 JSON/YAML省略路径时默认./mqttx-cli-options.json注意--save-options不是「仅保存」的干运行保存后仍会执行网络操作configuration.md。想了解某个旗标的精确取值范围与默认值最权威的来源永远是安装后运行mqttx command --help因为发布渠道可能携带不同实现仓库根目录的 INSTALL.md 提供了安装/更新路径。小结capabilities.md这份能力地图回答了 MQTTX CLI 使用中最容易被忽略的问题「这个参数到底在哪个命令上可用、为什么不可用、以及可用是否等于合法」。本文完整继承了其中的命令表、79 项注册旗标表、六条版本特例与维护验证基线并用 cli/src/index.ts、cli/src/utils/parse.ts、cli/src/utils/constants.ts 等源码佐证了表格背后的实现逻辑。实践中请始终遵循两条铁律以安装版本的--help为最终权威对连接、订阅、基准等任何长驻或高负载命令一律施加外部截止时间与进程清理再结合 连接与认证、MQTT 特性、载荷与文件、基准与仿真、配置与工具 及 故障排查 等专项指南安全落地。赞分享开发工具物联网后端【免费下载链接】MQTTXA Powerful and All-in-One MQTT 5.0 client toolbox for Desktop, CLI and WebSocket.项目地址https://gitcode.com/gh_mirrors/mq/MQTTX点击查看免费下载相关推荐3 分钟画好流程图并分享给团队Mermaid Live Editor 在线图表编辑器上手3 分钟画好流程图并分享给团队Mermaid Live Editor 在线图表编辑器上手 Mermaid Live Editor 是一个基于 Mermaid.前端开发者工具数据可视化MemPalace /mempalace:help 命令实战一份覆盖 Slash 命令、MCP 工具、CLI 与 Hooks 的全景速查指南MemPalace /mempalace:help 命令实战一份覆盖 Slash 命令、MCP 工具、CLI 与 Hooks 的全景速查指南 /mempala人工智能AI 应用RAGAgent 记忆MCP 服务本地部署Kaggle CLI 命令全景实战指南kaggle-api 项目的安装认证、命令树与全功能域参考手册Kaggle CLI 命令全景实战指南kaggle api 项目的安装认证、命令树与全功能域参考手册 本篇技术指南以开源仓库 kaggle api官方 KaCLI开发工具数据科学上一篇AEUX终极指南如何用3个步骤将Figma设计无缝转换为After Effects动画下一篇gumroad 完整拆解一个让创作者直接卖货的开源电商系统创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表