两款常用的 MQTT 调试工具

article/2025/9/15 3:54:54

文章目录

    • 一、前言
    • 二、预备知识
    • 三、MQTTBox
      • 1、介绍
      • 2、下载
      • 3、入门使用
      • 4、负载测试
    • 四、MQTT.fx
      • 1、介绍
      • 2、下载
      • 3、入门使用
      • 4、JS 脚本

一、前言

我们可以使用 MQTT 客户端来测试 MQTT 的通讯功能,这里介绍常用的两款工具 MQTTBoxMQTT.fx

二、预备知识

MQTT(MQ Telemetry Transport)协议,是 IBM 公司在 1999 年开发的轻量级网络协议,它有三个主要特点:

  • 采用二进制的消息内容编码格式,所以二进制数据、JSON 和图片等负载内容都可以方便传输。
  • 协议头很紧凑,协议交互也简单,保证了网络传输流量很小。
  • 支持 3 种 QoS(Quality of Service,服务质量)级别,便于应用根据不同的场景需求灵活选择。

这三个特点,让 MQTT 协议非常适合计算能力有限、网络带宽低、信号不稳定的远程设备,所以它成为了物联网系统事实上的网络协议标准。

在这里插入图片描述

MQTT 相关概念:

  • Publisher(发布者):消息的发出者,负责生产数据。发布者发送某个主题的数据给经纪人,发布者不知道订阅者。
  • Subscriber(订阅者):消息的订阅者,订阅经纪人管理的某个或者某几个主题。
  • Broker(经纪人):当经纪人接收到某个主题的数据时,将数据发送给这个主题的所有订阅者。
  • Topic(主题):可以理解为消息队列中的路由,订阅者订阅了主题之后,就可以收到发送到该主题的消息。
  • Payload(负载);可以理解为发送消息的内容。
  • QoS(消息质量):全称 Quality of Service,即消息的发送质量,主要有 QoS 0、QoS 1、QoS 2三个等级,下面分别介绍下:
    • QoS 0(Almost Once):至多一次,只发送一次,会发生消息丢失或重复;
    • QoS 1(Atleast Once):至少一次,确保消息到达,但消息重复可能会发生;
    • QoS 2(Exactly Once):只有一次,确保消息只到达一次。

三、MQTTBox

1、介绍

协议支持:

  • TCP(tcp)
  • TLS(tls)
  • Web Sockets(ws)
  • Secure Web Sockets(wss)

特点:

  • 支持的协议全面,支持 WebSocket
  • 界面美观但是简陋
  • 支持发布和订阅多个主题
  • 支持主题的单级和多级订阅
  • 支持 MQTT 负载测试
  • 自定义订阅和发送比例
  • 支持查看每个主题已发布/已订阅消息的历史记录
  • 支持MQTT负载测试
    • 支持并发测试实例,为同一个测试用例创建最多10个实例
    • 实时查看测试进程
    • 测试结果能以图表展示
  • 没有日志模块,没有脚本支持,没有 Broker 状态查看
  • payloads 输出相对简陋

官网地址:https://github.com/workswithweb/MQTTBox

2、下载

这款软件支持在 Windows、Mac 和 Linux 上面运行,我们到其官网选择合适的版本下载安装即可。

下载地址:http://workswithweb.com/mqttbox.html

在这里插入图片描述

3、入门使用

前提:已启动 MQTT 服务器

点击Create MQTT Client 按钮来创建一个 MQTT 客户端;
在这里插入图片描述
接下来对 MQTT 客户端进行配置,主要是配置好协议端口、连接用户名密码和 QoS 即可;
在这里插入图片描述

  • Client Name:随便填

  • Protocol:选择 mqtt / tcp

  • Host:MQTT服务器的IP地址和端口,问后端同事要

  • Username 和 Password:也是问服务端要

再配置一个订阅者,订阅者订阅 testTopicA 这个主题,我们会向这个主题发送消息;
在这里插入图片描述
点击顶部 Connection 按钮进行连接,绿色表示连接上了,红色是连接断开。你也可以添加更多的发布者和订阅者。

发布者向主题中发布消息,订阅者可以实时接收到。
在这里插入图片描述

4、负载测试

测试参数:
在这里插入图片描述

测试过程:
在这里插入图片描述
测试结果:
在这里插入图片描述
在这里插入图片描述
结论:

  • 测试时需要取消用户名密码
  • 简单测试Broker的性能
  • 结果展示比较直观

四、MQTT.fx

1、介绍

协议支持:

  • TCP(tcp)
  • TLS(tls)

特点:

  • 界面美观,操作便捷
  • 不支持WebSocket协议
  • 基于java开发
  • 支持代理
  • 通过 Nashorn Engine 的 JS 脚本支持
  • 全平台支持
  • Broker状态检测(HiveMQ & mosquitto),并没有 emqtt
  • 操作日志查看
  • payload的格式解析:
    • 文本
    • JSON
    • HEX
    • Base64
    • Sparkplug
  • 免费(Apache 2.0,新版 5.0+ 需要license)

2、下载

下载地址:http://www.jensd.de/apps/mqttfx/1.7.1/
在这里插入图片描述

3、入门使用

点击 ⚙ 按钮来创建一个 MQTT 客户端;
在这里插入图片描述

接下来对 MQTT 客户端进行配置,主要是配置好协议端口、连接用户名密码和 QoS 即可;

在这里插入图片描述
在这里插入图片描述

再配置一个订阅者,订阅者订阅 testTopicA 这个主题,我们会向这个主题发送消息;

在这里插入图片描述

发布者向主题中发布消息,订阅者可以实时接收到。

在这里插入图片描述

4、JS 脚本

// mqttManager 支持 publish() subsribe() unsubscribe() 
// 日志记录 
var Thread = Java.type("java.lang.Thread");function execute(action) {out("Test Script: " + action.getName());for (var i = 0; i < 10; i++) {switchON();Thread.sleep(500);switchOFF();Thread.sleep(500);}action.setExitCode(0);action.setResultText("done.");out("Test Script: Done");return action;
}function switchON() {out("fountain ON");mqttManager.publish("home/garden/fountain", "ON");
}function switchOFF() {out("fountain OFF");mqttManager.publish("home/garden/fountain", "OFF");
}function out(message){output.print(message);
}

在这里插入图片描述
在这里插入图片描述

软件包网盘地址:

  • 链接:https://pan.baidu.com/s/1MX3adP3ZVopErfBO63MyOA
  • 提取码:160z

参考资料:

  • [1]:《物联网开发实战》
  • [2]:https://www.cnblogs.com/linzhanfly/p/9923577.html

http://chatgpt.dhexx.cn/article/XRYVsaa0.shtml

相关文章

简易Window BLE调试工具

简易Windows BLE调试工具 一、简介 Windows BLE调试工具是一款运行在Windows下的BLE调试软件&#xff0c;实现了扫描、连接、获取BLE设备上的服务以及向服务写入和读取数据的功能。 二、运行要求 系统需要使用Windows 10及以上的版本;需要电脑带有蓝牙功能或者使用外接蓝牙…

wsdl在线调试工具

1.下载soapui 2.进行调试 注:1.wsdl地址在测试服务器上一定要能联通 2.测试时如果是xml标签,需要进行转义 http://www.ku51.net/rehtml/ 3.在wsdl地址后面拼接?wsdl能够看到具体的接口信息 3.使用post进行请求示例

【sscom】 串口调试工具

这款串口调试工具我是经常使用的&#xff0c;这里推荐给大家&#xff0c;功能比较全面。 1、正常的串口调试功能。 2、可以保存一些经常发送的数据内容。 3、可以作为网络调试工具使用。 关注公众号&#xff1a;逸趣汇 微信号&#xff1a;yiquhui666 发送&#xff1a;010201 …

移动端开发调试工具

1、抓包工具Charles、Fiddler 平时只用抓取各种网络&#xff0c;需要设置手机的wifi代理 推荐指数2颗星 2、vConsole、eruda等调试库 这个方法需要在页面中插入一段 JS 脚本&#xff0c;这里以vConsole为例&#xff0c;导入vconsole.min.js&#xff0c;并实例化&#xff0c;…

串口通信工具android,串口调试工具手机版

串口调试工具手机版是一款针对OTG接口开发的串口调试应用&#xff0c;这款软件提供了文本、HEX码等多种格式&#xff0c;支持12个自定义按钮&#xff0c;支持自动重发功能&#xff0c;并提供了15种常用波特率&#xff0c;需要的朋友可以来西西下载串口调试工具手机版进行使用 串…

HTTP调试工具

HttpDebug HTTP协议调试工具 V1.02 英文绿色免费版 https://www.jb51.net/softs/43863.html postman的使用方法详解&#xff01;最全面的教程 https://www.cnblogs.com/jpfss/p/9082542.html 一 简介 Postman是一款功能超级强大的用于发送 HTTP 请求的 Chrome插件 。做web页…

Windows下的TCP/UDP网络调试工具-NetAssist以及Linux下的nc网络调试工具

已剪辑自: https://blog.csdn.net/ccf19881030/article/details/109370384 一、Windows下的网络调试工具-NetAssist 1、TCP服务端和客户端测试2、UDP服务端和客户端测试 二、Linux下的网络调试命令工具-nc 1、什么是nc2、nc的作用3、在CentOS7中安装nc命令工具[4、NetCat 官方…

串口调试工具推荐

作者&#xff1a;三十三重天 博客: http://www.zhouhuibo.club 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f61c; 在进行嵌入式开发时&#xff0c;总是要面对着来自终端的各种报文。不同的设备、终端厂商都有一套自己的报文协议&#xff0c;如何…

PostWomen websocket 调试工具

PostWomen是一款websocket调试工具,补充了post man没有websocket调试的遗憾 源代码 https://gitee.com/ichiva/post-women演示地址 新版浏览器已不支持 ws 链接&#xff0c;请使用 wss 链接实测本地 ws 链接任然可用,如 ws://127.0.0.1 或 ws://localhost http://ichiva.gi…

嵌入式开发<网络调试工具>

嵌入式开发<网络调试工具> 前言1&#xff0c;设备参数分类2&#xff0c;设备参数修改3&#xff0c;调试工具软件 一、软件界面二、功能说明1.网络设置1&#xff09;TCP Client设置A&#xff0c; 协议类型&#xff1a;B&#xff0c; 远程主机地址&#xff1a;C&#xff0c…

Linux串口调试工具

linux系统下串口调试和应用开发时配合串口调试工具必不可少。下面对常用的一些串口工具做一下汇总&#xff0c;包含&#xff1a;minicom/cutecom/picocom/putty/tty_uart 可供工程师参考。 实验环境&#xff1a; OS: Ubuntu16.04 ------------------------------------------…

android js调试工具,鬼鬼JS调试工具

鬼鬼JS调试工具是一款非常实用的JS调试软件&#xff0c;这里带给大家最新版本&#xff0c;新增了一些解密等功能&#xff0c;对于JS调试工作者或者感兴趣的朋友提供稳定和强大的调试支持。鬼鬼JS调试工具具有直观的界面设计&#xff0c;功能十分全面&#xff0c;有需要的朋友欢…

前端必须知道的调试工具

Bug和Debug Bug的起源&#xff1a; 当时人们还在使用第一代真空计算机&#xff08;马克二型&#xff09;&#xff0c;这种计算机是依靠控制电流来改变开关&#xff0c;从而实现控制&#xff0c;但是它会发出大量的热和光。 1949年9月9日&#xff0c;天气非常炎热&#xff0c…

10个用于C#.NET开发的基本调试工具

在调试软件时&#xff0c;工具非常重要。获取正确的工具&#xff0c;然后再调试时提起正确的信息。根据获取的正确的错误信息&#xff0c;可以找到问题的根源所在。找到问题根源所在&#xff0c;你就能够解决该错误了。 你将看到我认为最基本的解决在C# .NET 中错误问题的工具…

数据库(左、中、右)连接

一分钟让你搞明白 left join、right join和join的区别 首先&#xff0c;我们先来建两张表&#xff0c;第一张表命名为kemu&#xff0c;第二张表命名为score&#xff1a; 一、left join 顾名思义&#xff0c;就是“左连接”&#xff0c;表1左连接表2&#xff0c;以左为主&…

数据库 左连接,右连接,全连接,内连接

准备: 分别创建TB A,B. 插入一些测试数据。 TB_A TB_B 1.内链接 (inner join) 内连接是一种一一映射关系&#xff0c;就是两张表都有的才能显示出来 代码例子&#xff1a; select * from TB_A a inner join TB_B b on a.nameb.name 扩展&#xff1a;这里我突然联想到&#…

数据库的左右连接

连接查询 连接&#xff1a; join 所谓连接查询&#xff0c; 就是多个表查询 连接查询是先生成表记录的笛卡尔积 。 所有可能的对象组合 要领 左连接where只限定查询右表&#xff0c; 右连接where只限定查询左表。 左连接 left Join select * from tbl1 Left Join t…

数据库的左连接与右连接

概念模糊不清&#xff0c;特此整理。 1、有两张表 表TA&#xff1a;A1&#xff0c;A2&#xff0c;A3&#xff0c;AB 表TB&#xff1a;B1&#xff0c;B2&#xff0c;B3&#xff0c;BA 关联字段&#xff1a;AB、BA 2、左连接 SQL: select * from ta a left join tb b on a.ab …

数据库内连接、左连接、右连接详解

用一句话概括就是&#xff1a;左连接就是左边全部保留按条件查出右边&#xff0c;右连接就是右边全部保留按条件查出左边。 说得有点抽象&#xff0c;其实并没有什么难度&#xff0c;还是自己运行下数据库就明白了。 数据库建表语句如下&#xff1a; create database if not …

数据库查询之内连接,左连接,右连接

数据库查询之内连接&#xff0c;左连接&#xff0c;右连接 连接查询 当查询结果的列来源于多张表时&#xff0c;需要将多张表连接成一个大的数据集&#xff0c;再选择合适的列返回 等值连接查询&#xff1a;查询的结果为两个表匹配到的数据 左连接查询&#xff1a;查询的结果为…