mqttclient.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef MQTTCLIENT_H
  2. #define MQTTCLIENT_H
  3. #include <QtMqtt/qmqttclient.h>
  4. #include <QtMqtt/qmqttmessage.h>
  5. #include <QObject>
  6. class MqttClient : public QObject {
  7. Q_OBJECT
  8. public:
  9. explicit MqttClient(QObject *parent = nullptr);
  10. QMqttSubscription *subscribeToTopic(const QString &topic);
  11. void sendMessage(const QString &topic, const QByteArray &message, quint8 qos, bool isRetainedMsg);
  12. void onMessageReceived(const QByteArray &message, const QMqttTopicName &topic);
  13. void connectToMqttBroker(const QString &hostname, quint16 port, const QString &username, const QString &password,
  14. const QString &clientId);
  15. void subscribeToTopics(const QStringList &topics);
  16. void disconnectFromMqttBroker();
  17. bool isConnected() const;
  18. signals:
  19. void connected();
  20. void disConnected();
  21. void messageReceived(const QByteArray &message, const QMqttTopicName &topic);
  22. void proMessageReceived(const QByteArray &message, const QMqttTopicName &topic);
  23. private slots:
  24. void onConnected();
  25. // void onDisconnected();
  26. void onStateChanged(QMqttClient::ClientState newState);
  27. void onError(QMqttClient::ClientError error);
  28. // void onMessageReceived(const QByteArray &message, const QMqttTopicName &topic);
  29. private:
  30. static MqttClient *instance; // 静态成员变量,用于保存单例实例
  31. QMqttClient *_mqClient;
  32. QStringList m_subscribeTopics;
  33. };
  34. #endif // MQTTCLIENT_H