一步一步来:MQTT服务器搭建、MQTT客户端使用

物联网应用如火如荼,本文就物联网应用中最受青睐的协议 MQTT相关测试工具的使用进行简单说明。
希望此文能给需要用到的朋友一些微薄的帮助……
 
 
一、MQTT服务器( emqx )搭建
 
1. 下载服务器MQTT Broker
 
 
这里我使用的windows系统,下载对应版本工具:emqx-windows-v4.1-rc.2.zip
 
下载好后,解压目录如下:
 
 
 
  1. 启动MQTT服务器
启动CMD窗口,进入到bin目录,运行以下指令:
 
 
第一条是启动;第二条是查看运行状态。
 
到这里,就说明MQTT服务器已正常运行。就可以使用其它支持MQTT客户端的设备进行连接使用了。
 
2. 进入MQTT服务器控制台
 
emqx还提供了强大的控制台服务,进入控制台可进行各种配置。
 
确保emqx已正常运行后,可在浏览器中输入: http://127.0.0.1:18083
 
正常情况下会看到以下登陆界面:
 
 
可用admin/admin进行登陆
 
正常登陆后界面如下:
 
 
emqx控制台的使用,大家可以自己去摸索看看,这里就不做详细说明了。
 
 
二、MQTT客户端( MQTT.fx )使用
 
1. 下载工具
 
测试工具:MQTT.fx。可到官网 http://mqttfx.jensd.de/index.php/download下载对应版本。
 
我这里选择的是mqttfx-1.7.1-windows-x64.exe。下载好后正常安装即可。
 
安装好后,可直接启动MQTT.fx。启动界面如下:
 
 
2. 创建MQTT连接
 
可点击第1步中红色圈的设置按键创建一个MQTT连接,如下图所示,点击左正解+号新新建连接。
 
 
这里基于演示,所有设置都默认。设置OK后点右下角的Apply,然后退出设置界面。
说明:因为是在同一台电脑上进行测试,所以服务器是127.0.0.1
 
退出设置界面后回到主界面如下,默认选择刚才创建的连接“New Profile”。
 
 
3. 连接MQTT服务器
 
此时可点connect按键连接MQTT服务器。
 
连接后界面如下,红色框区域可用:
 
 
4. 订阅消息
 
以订阅topic1为例,设置如下。切换到Subscribe页面,订阅主题为:topic1;Qos选择Qos0
 
 
设置好后,点击"topic1"后面的Subscribe按键。
 
 
如图所示,表示已订阅成功。
 
5. 发布消息
 
切换到Public页面。发布一条上一步中订阅的主题为“topic1”的消息;消息内容为“topic1 test message”;Qos同样设置为Qos0。
 
 
以上信息设置好的,点击"topic1"后面的Publish按键即可。
 
6. 查看已订阅的消息
 
切换到Subscribe页面,看到已经收到了几条订阅的消息了,并且消息内容与上一步中发布的内容一样。
 
到这里就说明MQTT的发布、订阅功能都已测试OK。
 
 
 
 
 
  • 36
    点赞
  • 348
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
你可以使用 Qt 来搭建 MQTT 服务器和客户端。下面是一个简单的示例代码,演示了如何使用 Qt MQTT 模块来实现一个基本的 MQTT 客户端: ```cpp #include <QtMqtt/QMqttClient> #include <QCoreApplication> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QMqttClient mqttClient; mqttClient.setHostname("mqtt.example.com"); // 设置 MQTT 服务器的主机名 mqttClient.setPort(1883); // 设置 MQTT 服务器的端口 QObject::connect(&mqttClient, &QMqttClient::connected, [&]() { qDebug() << "Connected to MQTT server"; mqttClient.subscribe("topic/example"); // 订阅主题 }); QObject::connect(&mqttClient, &QMqttClient::disconnected, [&]() { qDebug() << "Disconnected from MQTT server"; }); QObject::connect(&mqttClient, &QMqttClient::messageReceived, [&](const QByteArray &message, const QMqttTopicName &topic) { qDebug() << "Received message:" << message << "on topic:" << topic.name(); }); mqttClient.connectToHost(); // 连接到 MQTT 服务器 return app.exec(); } ``` 上面的示例代码创建了一个 `QMqttClient` 对象,并设置了 MQTT 服务器的主机名和端口。然后,通过连接相关的信号和槽,实现了连接到服务器、订阅主题以及接收消息的功能。最后,通过调用 `connectToHost` 函数来连接到 MQTT 服务器。 你还需要在项目文件中添加以下语句,以确保正确链接 Qt MQTT 模块: ``` QT += mqtt ``` 关于如何搭建 MQTT 服务器,你可以使用一些开源的 MQTT 服务器实现,如 Mosquitto、EMQ X 等。你可以在它们的官方文档中找到详细的安装和配置步骤。 希望这个简单的示例能够帮助你开始搭建 MQTT 服务器和客户端。如有更多问题,请随时提问。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值