四川通江县住房和建设局网站,潍坊网络公司,鞍山企业做网站,asp手机网站模板什么是MQTT#xff1f;
作用是什么#xff08;适用场景#xff09;#xff1f;
与其他通讯协议相比#xff0c;优缺点在那里#xff1f;
一.安装 MQTT 服务器
使用 EMQ X#xff08;开源且可视化管理#xff09;
下载 EMQX
下载的是 emqx-5.0.26-ubuntu18.04-…什么是MQTT
作用是什么适用场景
与其他通讯协议相比优缺点在那里
一.安装 MQTT 服务器
使用 EMQ X开源且可视化管理
下载 EMQX
下载的是 emqx-5.0.26-ubuntu18.04-amd64.deb
直接访问127.0.0.1:18083
无法访问的解决办法
查看配置文件的默认端口号 一般在 /etc/emqx/emqx.conf)查看端口是否占用sudo emqx console 查看报错情况
成功如下 二. MQTT库移植
1.QMQTT下载
GitCode - 开发者的代码家园
使用qt打开项目注意所选 qmqtt 版本需要和 qt 版本一致 直接编译此时会报错 No file ,为路径错误 将代码中头文件切换为绝对路径 编译成功将 release 版本编译后复制 include 和 lib 两个文件夹 lib 文件夹放到自己的项目工程目录下 添加现有文件 添加外部库 成功如下 三.简单连接使用
1.使用 QMTTX 本地回环地址/本机IP地址 端口号一般默认 1883 成功连接后自定义 topic 数据 代码测试
#include qmqttserver.h
#include ui_qmqttserver.hQMqttServer::QMqttServer(QWidget *parent) :QWidget(parent),ui(new Ui::QMqttServer)
{ui-setupUi(this);mqtt_clientnew QMqttClient();connect(mqtt_client,QMqttClient::messageReceived,this,QMqttServer::recvMsg);connect(mqtt_client,QMqttClient::connected,[](){qDebug()成功连接;subscribeMsg();});ip_127.0.0.1;port_1883;connectToMqtt();
}QMqttServer::~QMqttServer()
{delete ui;
}
int QMqttServer::connectToMqtt()
{mqtt_client-setHostname(ip_.trimmed());mqtt_client-setPort(port_.trimmed().toUInt());mqtt_client-connectToHost();
}
void QMqttServer::subscribeMsg()
{mqtt_client-subscribe(QMqttTopicFilter(testtopic/msg/));qDebug()订阅 testtopic/msg/;
}
void QMqttServer::recvMsg(const QByteArray message, const QMqttTopicName topic_)
{QByteArray byte_messageconst_castQByteArray(message);byte_message.replace(\\,);
// QString recv_str[topic_]message;qDebug()topic_.name(): QString::fromUtf8(byte_message);
}成功订阅 参考
MQTT通信协议(mosquitto)在Linux上的环境构建与测试_linux展示mqtt连接状态-CSDN博客
Linux下QT编程之MQTT实战_linux上编译mqtt时#include private/qobject_p.h找不到-CSDN博客