一、前言
我们可以使用 MQTT 客户端来测试 MQTT 的通讯功能,这里介绍常用的两款工具 MQTTBox 和 MQTT.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 输出相对简陋
这款软件支持在 Windows、Mac 和 Linux 上面运行,我们到其官网选择合适的版本下载安装即可。
四、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、下载
版权说明:如非注明,本站文章均为 扬州驻场服务-网络设备调试-监控维修-南京泽同信息科技有限公司 原创,转载请注明出处和附带本文链接。
请在这里放置你的在线分享代码