Эх сурвалжийг харах

V0.5.11
1、修agileMQTTBase,添加了发送信息函数

Apple 5 сар өмнө
parent
commit
440c7b8350

+ 16 - 0
common/mqtt/MQTTBase.cpp

@@ -61,6 +61,22 @@ void MQTTBase::connectToServer()
     m_client.connectToHost();
 }
 
+/* 发送消息 */
+void MQTTBase::sendMessage(const QString& topic, const QByteArray& message, int qos)
+{
+    if(m_isConnected == false)
+    {
+        SPDLOG_LOGGER_ERROR(m_logger,"MQTT未连接到服务器,发送消息失败");
+        return;
+    }
+    QMQTT::Message msg(0, topic, message, qos);
+    auto ret = m_client.publish(msg);
+    if(ret != 0)
+    {
+        SPDLOG_LOGGER_ERROR(m_logger,"发送消息失败:{}, 错误代码:{}", topic.toStdString(), ret);
+    }
+}
+
 
 /* 连接成功 */
 void MQTTBase::do_connected()

+ 12 - 6
common/mqtt/MQTTBase.h

@@ -22,16 +22,22 @@ class MQTTBase : public QObject
 public:
     MQTTBase(QObject* parent = nullptr);
 
-    void setIPAndPort(const QString& IP, int port = 1883);  /* 设置地址 */
-    void addSubcribe(const QString& topic,int qos = 0);     /* 设置订阅 */
-    void connectToServer();                                 /* 连接到服务器 */
-    void analyzeAllMessage();                               /* 解析所有消息 */
+    /* 设置地址 */
+    void setIPAndPort(const QString& IP, int port = 1883);
+    /* 设置订阅 */
+    void addSubcribe(const QString& topic,int qos = 0);
+    /* 连接到服务器 */
+    void connectToServer();
+    /* 发送消息 */
+    void sendMessage(const QString& topic, const QByteArray& message, int qos = 0);
     
 signals:
-    void signal_recvMessage(const QString& message);/* 接收到消息,对消息进行了转发 */
+    /* 接收到消息,对消息进行了转发 */
+    void signal_recvMessage(const QString& message);
 
 protected:
-    virtual void recvMessage(const QMQTT::Message& message) = 0; /* 接收到消息,子类继承这个解析消息数据 */
+    /* 接收到消息,子类继承这个解析消息数据 */
+    virtual void recvMessage(const QMQTT::Message& message) = 0;
 
 protected slots:
     void do_connected();                            /* 连接成功 */