使用 MQTTBox 接入 EMQ X Cloud
本文将以 MQTTBox 作为 MQTT 客户端测试工具,接入 MQTT 云服务 - EMQ X Cloud。通过本文,你将能快速了解 MQTTBox 的基础用法以及 MQTT 协议的基本概念与使用。
MQTTBox 简介
MQTTBox 是 Sathya Vikram 个人开发的 MQTT 客户端工具,最初仅在 Chrome 上作为拓展安装使用, 后经重写开源成为桌面端跨平台软件。界面简单直接,支持多个客户端同时在线,但客户端之间的切换、互发消息等交互还是有一些不便。MQTTBox 借助 Chrome 实现强大的跨平台特性,结合简单的负载测试功能,是一款值得尝试的 MQTT 客户端工具。
MQTTBox 完整的支持了以下功能:
- 通过支持 Chrome OS,Linux,macOS,Windows 的 Chrome 存储易于安装,支持 Linux、macOS、Windows 独立安装
- 支持 MQTT、MQTT over WebSocket,多种 TCP 加密方式的连接
- 保存发送的消息历史记录
- 复制/粘贴历史记录中的消息
- 保存订阅消息历史记录
- 简单的性能测试,对 Broker 的负载做出测试并通过图表可视化查看测试结果
在万物互联的时代,EMQ X Cloud 可以帮助用户快速构建面向物联网领域的行业应用,轻松实现物联网数据的采集、传输、计算和持久化。
本文将使用 EMQ X Cloud 提供的 免费公共 MQTT 服务器 作为本次测试的 MQTT 服务器地址,服务器接入信息如下:
- Broker: broker-cn.emqx.io
- TCP Port: 1883
- SSL/TLS Port: 8883
MQTTBox 使用 MQTT 连接
初始化页面 打开软件后,进入到软件主界面,点击顶部菜单栏的
Create MQTT Clinet
按钮,进入到创建 MQTT 客户端页。文章图片
创建连接 进入到创建 MQTT 客户端页面后,填写 Host、选择连接协议等 MQTT 相关配置信息后,点击底部的
Save
按钮即可立即创建一个连接客户端。注意:填写 Host 时,需填入完整的地址,包含连接的端口号。如果是 WebSocket 连接,还需加上 Path。如果 MQTT Broker 开启用户名/密码认证的,还需要在配置页面内输入 Username / Password
文章图片
【使用 MQTTBox 接入 EMQ X Cloud】此时保存成功后,会进入到一个客户端详情页面,如果右上角的按钮显示
Connected
并且为绿色,即表示该 MQTT 客户端已经成功连接,再次点击后可以断开客户端连接。订阅主题
完成连接的建立之后,即可开始订阅消息。因为 MQTT 协议采用的是发布/订阅的模型,所以我们需要在连接之后订阅主题,之后主题上有消息产生即可收到来自 EMQ X Cloud 推送。
在 MQTTBox 的客户端详情页面中默认有两个发送和订阅的输入框。如果有多个订阅或者不同的发布内容,可以添加多个,点击顶部菜单栏中的
Add publisher
和 Add subscriber
按钮可以添加和管理多个发布订阅。我们先在右侧的黄色框内输入 Topic:
testtopic/mqttbox
,选择 QoS 等级后,点击 Subscribe
按钮即可订阅相关 Topic。MQTT 消息发布
然后我们在蓝色的框内输入要发布的 Topic,这里输入刚才订阅过的
testtopic/mqttbox
,选择 QoS 级别,选择默认的 Payload Type,支持 String / JSON / XML / Characters
,我们 Payload 的框内输入一段 JSON 后,点击 Publish 按钮。此时我们可以看到右边的订阅框内,出现了刚才发布的消息。至此,我们已经创建了一个 MQTT 客户端并成功测试了连接、发布、订阅等功能。
文章图片
TLS/SSL 连接
除普通连接外,MQTTBox 还支持 TLS/SSL 连接。
如使用 EMQ X Cloud 的话,可以参考该文档来创建证书。我们可以进入到客户端详情页中,选择协议为 mqtts/tls 或者 wss,然后选择保存。
如果是双向认证的话,可以在配置页面中选择 CA 证书文件,客户端证书和客户端 Key 文件,再选择连接。连接前请确定 TLS/SSL 连接的端口并做修改。
文章图片
版权声明: 本文为 EMQ 原创,转载请注明出处。
原文链接:https://www.emqx.com/zh/blog/connecting-to-emqx-cloud-with-mqttbox
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小