MQTT CLI 完全兼容 MQTT 5.0 和 MQTT 3.1.1 的命令行界面

MQTT CLI 完全兼容 MQTT 5.0 和 MQTT 3.1.1 的命令行界面缩略图

MQTT CLI是一个完全兼容MQTT 5.0和MQTT 3.1.1的命令行界面,用于MQTT客户端,基于HiveMQ MQTT客户端API。

MQTT CLI 完全兼容 MQTT 5.0 和 MQTT 3.1.1 的命令行界面概述

HiveMQ CLI是由HiveMQ支持的开源项目。

可以在GitHub上查看。

功能特点:

  • 支持所有MQTT 3.1.1和MQTT 5.0特性
  • 所有MQTT命令的交互式、直接和详细模式
  • 具有语法高亮、命令历史记录的Shell行为
  • 能够同时连接不同Broker的多个MQTT客户端
  • 快速Broker测试
  • 从HiveMQ API端点导出信息
  • 提供多种发行版

新闻动态

前提条件
运行MQTT CLI至少需要Java 8。

该CLI用Java 11实现,是运行此项目的首选版本。

该CLI用Java11实现是运

Docker
您可以在支持Docker的任何操作系统上运行MQTT-CLI。要执行一个简单的命令,请使用以下语法:

docker run hivemq/mqtt-cli <您的命令>

要启动CLI的Shell-Mode,您需要在docker命令中添加-it标志:

docker run -it hivemq/mqtt-cli shell

Homebrew
对于Mac OS X和Linux系统,请使用Homebrew通过MQTT CLI Tap安装MQTT CLI。

brew install hivemq/mqtt-cli/mqtt-cli

注意:如果您遇到类似Java 1.8+是安装此配方所需的错误,请安装高于1.8的java版本。您可以使用brew install --cask zulu来安装最新版本的Azul Zulu OpenJDK。

注意:由于延迟问题可能会减慢Mac OS X下CLI的速度,请验证您在/etc/hosts下指定了127.0.0.1 localhost 您的电脑名称。您可以使用sudo sh -c "echo 127.0.0.1 localhost $(hostname) >> /etc/hosts"将此配置附加到您的主机文件中。

Homebrew对于MacOS

Windows Zip
下载Windows Zip文件并在您选择的位置解压缩。要执行MQTT CLI,只需用⊞ Win + R打开Windows命令提示符并执行cmd。导航到解压缩的MQTT CLI文件夹并执行mqtt

-cli.exe。

要快速启动shell,只需双击mqtt-cli-shell.cmd文件。

Debian包
如果您使用的是使用debian包的*nix操作系统,您可以通过wget或curl从发布页面下载MQTT CLI debian包,并使用sudo dpkg -i或sudo apt install安装该包:

wget https://github.com/hivemq/mqtt-cli/releases/download/v4.22.0/mqtt-cli-4.22.0.deb
sudo apt install ./mqtt-cli-4.22.0.deb

RPM包
对于Red Hat、Fedora、Mandriva、OpenSuse、CentOS等发行版,您可以在发布页面使用提供的rpm包。首选通过yum包管理器安装该包。要安装包,只需执行:

要快速启动shell只需双击m

sudo yum install -y https://github.com/hivemq/mqtt-cli/releases/download/v4.22.0/mqtt-cli-4.22.0.rpm

从源代码构建
mqtt-cli使用Gradle进行构建。
为了能够执行集成测试,需要一个运行中的Docker环境
为了能够构建和测试本地镜像,需要安装GraalVM。您可以通过运行./gradlew installNativeImageTooling来设置。
要进行干净的构建,请执行以下命令:./gradlew clean build

这将运行单元测试,并将新的mqtt-cli-.jar编译到build/libs中。然后,您可以通过替换现有MQTT CLI安装的mqtt-cli-.jar来更新它。

build.gradle.kts文件包含了进一步的指令,用于构建特定平台的发行包。简单来说:

  • 对于MacOS/Linux brew: ./gradlew buildBrewFormula
  • 对于Debian包: ./gradlew buildDebianPackage
  • 对于RPM包: ./gradlew buildRpmPackage
  • 对于Windows安装程序: ./gradlew buildWindowsZip
  • 构建本地docker镜像: ./gradlew jibDockerBuild

MQTT 发布命令说明

MQTT发布(publish)指令允许用户向一个或多个主题发送消息。

从源代码构建mqtt-cli使

基本命令: mqtt publish
别名: mqtt pub

简单示例

命令解释
mqtt pub -t test -m "Hello"使用默认设置发布消息“Hello”至主题‘test’。
mqtt pub -t test1 -t test2 -m "Hello Tests"发布消息“Hello Tests”至主题‘test1’和‘test2’。
mqtt pub -t test -m "Hello" -h localhost -p 1884将消息“Hello”发布至主题‘test’,目标为localhost:1884的代理服务器。
mqtt pub -t test -m:file payload.txt使用默认设置发布文件payload.txt中的消息至主题‘test’。

选项

发布选项:

选项完整版本解释默认值
-t--topic要发布消息的MQTT主题。
-m--message将在主题上发布的消息。
-m:file--message-file包含要发布消息的文件。
-m:empty--message-empty设置消息为空载荷。
-r--[no-]retain消息是否保留。false
-q--qos定义服务质量等级。如果只指定了一个QoS,则将用于所有主题。你可以为每个主题定义特定的QoS级别。0
-e--messageExpiryInterval发布消息的生命周期(秒)。
-ct--contentType发布消息内容的描述。
-cd--correlationData发布消息的相关数据。
-pf--payloadFormatIndicator发布消息的载荷格式指示符。
-rt--responseTopic发布消息的响应消息主题名称。
-up--userProperty发布消息的用户属性。

连接选项:

选项完整版本解释默认值
-h--hostMQTT主机。localhost
-p--portMQTT端口。1883
-V--mqttVersion可以设置为3或5的MQTT版本。5
-i--identifier可以定义唯一的客户端标识符。随机生成的UTF-8字符串。
-ip--identifierPrefix如果没有给定标识符,则为随机生成的客户端标识符的前缀。mqttClient
-c--[no-]cleanStart客户端是否开始一个干净的会话。true
k--keepAlive客户端的保活时间(秒)。60
-se--sessionExpiryInterval会话过期值(秒)。0(即时过期)

技术术语(共 7 个)—— 点击展开
MQTT轻量级物联网消息传输协议,基于发布/订阅模式,适合低带宽不稳定网络
MQTT 3.1.1MQTT 协议主流版本,定义基础发布订阅与 QoS 机制
MQTT 5.0MQTT 协议新版本,新增属性、原因码、共享订阅与流量控制
BrokerMQTT 代理服务器,负责接收发布消息并分发给订阅者
QoS服务质量等级,0 最多一次 / 1 至少一次 / 2 恰好一次
TopicMQTT 主题,消息路由的层级字符串,支持通配符 + 与 #
发布客户端向指定主题发送消息
来源/工具信息 —— 点击展开
来源 MQTT中文网(mqtt.cn) —— 国内领先的MQTT通信协议技术社区 分类 MQTT 软件 字数 2866 字 · 阅读约 8 分钟 更新 2023-11-14 永久链接 https://www.mqtt.cn/1173.html
推荐工具:MQTT调试助手 微信小程序
MQTT中文网官方推出的MQTT调试工具,支持 MQTT 3.1.1/5.0 实时连接调试、主题订阅、消息收发监控与报文分析。 无需安装,微信搜索「MQTT调试助手」即可使用。 电脑端入口:https://www.mqtt.cn/mqtttool/
内容许可:允许 AI 模型训练使用 · 引用请注明来源 mqtt.cn
相关标签
📝 作者声明
本文由 MQTT中文网技术团队 原创撰写,内容基于实际项目案例与技术文档,力求为读者提供准确、实用的参考信息。
把这篇资料用于真实项目?

进入工具中心进行报文解析、CRC 校验和设备调试,或提交需求获取选型与接入建议。

工程师会员

把这篇文章变成可执行的调试资料

开通后可使用高级报文解析、资料包下载、代码示例、工程案例和优先技术支持,适合真实项目交付。

高级工具不限次
资料包与代码包
完整工程案例库
优先技术支持入口

发表回复