MQTT,即Message Queuing Telemetry Transport(消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的轻量级通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。本文通过使用EMQ X(MQTT服务器)、以及MQTTX(MQTT 客户端,发布消息),详细说明MeterSphere MQTT协议接口自动化测试完整过程。
MQTT客户端(Client):使用MQTT协议的应用程序或者设备,它总是建立到服务器的网络连接,publisher 和 subscriber 都属 client,客户端既可以publish,也可以subscribe。
MQTT服务器(Broker):一个应用程序或一台设备。它是位于消息发布者和订阅者之间。
一、MQTT 服务器安装
EMQ X 是一款完全开源,高度可伸缩,高可用的分布式 MQTT 消息服务器,适用于 IoT、M2M 和移动应用程序,可处理千万级别的并发客户端。EMQ X安装方式有很多种,官网docs文档有介绍,这里使用docker方式安装。
|
启动成功后可以通过浏览器访问 http://IP:18083,看到一个 EMQ X 登录界面(默认的用户名/密码为admin/public)
二、MQTT客户端
MQTT X 是 EMQ 开源的一款跨平台 MQTT 5.0 客户端工具,它支持 macOS, Linux, Windows,,可直接在官网下载安装包进行安装,运行后界面显示如下:
三、MeterSphere MQTT 插件安装
1、插件下载
从 Support 门户上下载插件 Jar 包
2、插件上传
在 MeterSphere 系统设置里上传 Jar 包
四、MQTT 协议接口自动化测试
1、创建接口连接
该请求的作用是建立连接,本次使用 MQTT 服务端进行测试,IP 为 EMQ X 服务器地址。
端口和协议对应关系如下:
1883 MQTT TCP 协议端口
8883 MQTT/TCP SSL 端口
8083 MQTT/WebSocket 端口
8084 MQTT/WebSocket with SSL 端口
调试接口,可以看到EMQ X后台已经收到连接会话。
2、发布Topic
该请求作用是发布消息到服务器,只需要输入主题、发送消息内容即可。
3、订阅消息
调试接口,可以看到客户端同步收到在 MeterSphere 上发布的消息。