QMqttClient Class
Die Klasse „QMqttClient“ stellt die zentrale Schnittstelle für die Kommunikation mit einem MQTT-Broker dar. Mehr...
| Header: | #include <QMqttClient> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Mqtt) target_link_libraries(mytarget PRIVATE Qt6::Mqtt) |
| qmake: | QT += mqtt |
| Erbt von: | QObject |
Öffentliche Typen
| enum | ClientError { NoError, InvalidProtocolVersion, IdRejected, ServerUnavailable, BadUsernameOrPassword, …, Mqtt5SpecificError } |
| enum | ClientState { Disconnected, Connecting, Connected } |
| enum | ProtocolVersion { MQTT_3_1, MQTT_3_1_1, MQTT_5_0 } |
| enum | TransportType { IODevice, AbstractSocket, SecureSocket, WebSocket, SecureWebSocket } |
Eigenschaften
|
|
Öffentliche Funktionen
| QMqttClient(QObject *parent = nullptr) | |
| virtual | ~QMqttClient() override |
| void | authenticate(const QMqttAuthenticationProperties &prop) |
| bool | autoKeepAlive() const |
| bool | cleanSession() const |
| QString | clientId() const |
| void | connectToHost() |
| void | connectToHostEncrypted(const QSslConfiguration &conf) |
(since 6.10) void | connectToHostWebSocket(QWebSocket *webSocket = nullptr) |
(since 6.10) void | connectToHostWebSocketEncrypted(QWebSocket *webSocket = nullptr) |
| QMqttConnectionProperties | connectionProperties() const |
| void | disconnectFromHost() |
| QMqttClient::ClientError | error() const |
| QString | hostname() const |
| quint16 | keepAlive() const |
| QMqttLastWillProperties | lastWillProperties() const |
| QString | password() const |
| quint16 | port() const |
| QMqttClient::ProtocolVersion | protocolVersion() const |
| qint32 | publish(const QMqttTopicName &topic, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false) |
| qint32 | publish(const QMqttTopicName &topic, const QMqttPublishProperties &properties, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false) |
| bool | requestPing() |
| QMqttServerConnectionProperties | serverConnectionProperties() const |
| void | setConnectionProperties(const QMqttConnectionProperties &prop) |
| void | setLastWillProperties(const QMqttLastWillProperties &prop) |
| void | setTransport(QIODevice *device, QMqttClient::TransportType transport) |
| QMqttClient::ClientState | state() const |
| QMqttSubscription * | subscribe(const QMqttTopicFilter &topic, quint8 qos = 0) |
| QMqttSubscription * | subscribe(const QMqttTopicFilter &topic, const QMqttSubscriptionProperties &properties, quint8 qos = 0) |
| QIODevice * | transport() const |
| void | unsubscribe(const QMqttTopicFilter &topic) |
| void | unsubscribe(const QMqttTopicFilter &topic, const QMqttUnsubscriptionProperties &properties) |
| QString | username() const |
| QByteArray | willMessage() const |
| quint8 | willQoS() const |
| bool | willRetain() const |
| QString | willTopic() const |
Öffentliche Slots
| void | setAutoKeepAlive(bool autoKeepAlive) |
| void | setCleanSession(bool cleanSession) |
| void | setClientId(const QString &clientId) |
| void | setError(QMqttClient::ClientError error) |
| void | setHostname(const QString &hostname) |
| void | setKeepAlive(quint16 keepAlive) |
| void | setPassword(const QString &password) |
| void | setPort(quint16 port) |
| void | setProtocolVersion(QMqttClient::ProtocolVersion protocolVersion) |
| void | setState(QMqttClient::ClientState state) |
| void | setUsername(const QString &username) |
| void | setWillMessage(const QByteArray &willMessage) |
| void | setWillQoS(quint8 willQoS) |
| void | setWillRetain(bool willRetain) |
| void | setWillTopic(const QString &willTopic) |
Signale
| void | authenticationFinished(const QMqttAuthenticationProperties &p) |
| void | authenticationRequested(const QMqttAuthenticationProperties &p) |
| void | autoKeepAliveChanged(bool autoKeepAlive) |
| void | brokerSessionRestored() |
| void | cleanSessionChanged(bool cleanSession) |
| void | clientIdChanged(QString clientId) |
| void | connected() |
| void | disconnected() |
| void | errorChanged(QMqttClient::ClientError error) |
| void | hostnameChanged(QString hostname) |
| void | keepAliveChanged(quint16 keepAlive) |
| void | messageReceived(const QByteArray &message, const QMqttTopicName &topic = QMqttTopicName()) |
| void | messageSent(qint32 id) |
| void | messageStatusChanged(qint32 id, QMqtt::MessageStatus s, const QMqttMessageStatusProperties &properties) |
| void | passwordChanged(QString password) |
| void | pingResponseReceived() |
| void | portChanged(quint16 port) |
| void | protocolVersionChanged(QMqttClient::ProtocolVersion protocolVersion) |
| void | stateChanged(QMqttClient::ClientState state) |
| void | usernameChanged(QString username) |
| void | willMessageChanged(QByteArray willMessage) |
| void | willQoSChanged(quint8 willQoS) |
| void | willRetainChanged(bool willRetain) |
| void | willTopicChanged(QString willTopic) |
Ausführliche Beschreibung
Ein MQTT-Client ist ein Programm oder Gerät, das MQTT nutzt, um eine Netzwerkverbindung zu einem MQTT-Server, auch Broker genannt, herzustellen. Die Verbindungsanfrage muss eine eindeutige Client-Kennung enthalten. Optional kann sie ein Will-Topic, eine Will-Nachricht, einen Benutzernamen und ein Passwort enthalten.
Sobald eine Verbindung hergestellt ist, kann ein Client Nachrichten senden, an deren Empfang andere Clients interessiert sein könnten, sich abonnieren, um Benachrichtigungen zu Themen anzufordern, das Abonnement kündigen, um eine Benachrichtigungsanforderung zu entfernen, und die Verbindung zum Broker trennen.
Dokumentation zu Mitgliedstypen
enum QMqttClient::ClientError
Dieser Enum-Typ gibt den Fehlerstatus eines Clients an.
| Konstante | Wert | Beschreibung |
|---|---|---|
QMqttClient::NoError | 0 | Es ist kein Fehler aufgetreten. |
QMqttClient::InvalidProtocolVersion | 1 | Der Broker akzeptiert keine Verbindung mit der angegebenen Protokollversion. |
QMqttClient::IdRejected | 2 | Die Client-ID ist fehlerhaft. Dies könnte an ihrer Länge liegen. |
QMqttClient::ServerUnavailable | 3 | Die Netzwerkverbindung wurde hergestellt, aber der Dienst ist auf der Broker-Seite nicht verfügbar. |
QMqttClient::BadUsernameOrPassword | 4 | Die Daten im Benutzernamen oder Passwort sind fehlerhaft. |
QMqttClient::NotAuthorized | 5 | Der Client ist nicht zur Verbindung berechtigt. |
QMqttClient::TransportInvalid | 256 | Der zugrunde liegende Transport hat einen Fehler verursacht. Beispielsweise könnte die Verbindung unerwartet unterbrochen worden sein. |
QMqttClient::ProtocolViolation | 257 | Der Client hat eine Protokollverletzung festgestellt und daher die Verbindung geschlossen. |
QMqttClient::UnknownError | 258 | Es ist ein unbekannter Fehler aufgetreten. |
QMqttClient::Mqtt5SpecificError | 259 | Der Fehler steht im Zusammenhang mit der MQTT-Protokollstufe 5. Ein Fehlercode könnte weitere Details liefern. |
enum QMqttClient::ClientState
Dieser Enum-Typ gibt die Zustände an, die ein Client annehmen kann.
| Konstante | Wert | Beschreibung |
|---|---|---|
QMqttClient::Disconnected | 0 | Der Client ist vom Broker getrennt. |
QMqttClient::Connecting | 1 | Es wurde eine Verbindungsanfrage gestellt, aber der Broker hat die Verbindung noch nicht genehmigt. |
QMqttClient::Connected | 2 | Der Client ist mit dem Broker verbunden. |
enum QMqttClient::ProtocolVersion
Diese Enumeration legt die Protokollversion des MQTT-Standards fest, die bei der Kommunikation mit einem Broker verwendet werden soll.
| Konstante | Wert | Beschreibung |
|---|---|---|
QMqttClient::MQTT_3_1 | 3 | MQTT-Standard 3.1 |
QMqttClient::MQTT_3_1_1 | 4 | MQTT-Standard 3.1.1, öffentlich als Version 4 bezeichnet |
QMqttClient::MQTT_5_0 | 5 | MQTT-Standard 5.0 |
enum QMqttClient::TransportType
Dieser Enum-Typ legt die Verbindungsmethode fest, die zum Aufbau einer Verbindung zu einem Broker verwendet werden soll.
| Konstante | Wert | Beschreibung |
|---|---|---|
QMqttClient::IODevice | 0 | Der Transport verwendet eine Klasse, die auf einer „ QIODevice “ basiert. |
QMqttClient::AbstractSocket | 1 | Der Transport verwendet eine Klasse, die auf einem „ QAbstractSocket “ basiert. |
QMqttClient::SecureSocket | 2 | Der Transport verwendet eine Klasse, die auf einem „ QSslSocket “ basiert. |
QMqttClient::WebSocket (since Qt 6.10) | 3 | Der Transport verwendet eine Klasse, die auf einem „ QIODevice “ basiert, der intern einen „ QWebSocket “ verwendet. |
QMqttClient::SecureWebSocket (since Qt 6.10) | 4 | Der Transport verwendet eine Klasse, die auf einem „ QIODevice “ basiert, der intern einen „secure QWebSocket “ verwendet. |
Dokumentation zu den Eigenschaften
autoKeepAlive : bool
Diese Eigenschaft legt fest, ob der Client automatisch Keep-Alive-Nachrichten an den Server verwaltet.
Wenn diese Eigenschaft auf „ true “ gesetzt ist, sendet der Client automatisch im Intervall „ keepAlive “ eine Ping-Nachricht an den Server.
Andernfalls muss der Benutzer innerhalb des für die Verbindung festgelegten Intervalls manuell „ requestPing “ aufrufen. Wurde innerhalb dieses Intervalls kein Ping gesendet, trennt der Server die Verbindung.
Der Standardwert dieser Eigenschaft lautet true.
Zugriffsfunktionen:
| bool | autoKeepAlive() const |
| void | setAutoKeepAlive(bool autoKeepAlive) |
Benachrichtigungssignal:
| void | autoKeepAliveChanged(bool autoKeepAlive) |
Siehe auch keepAlive(), requestPing(), serverConnectionProperties() und pingResponseReceived().
cleanSession : bool
Diese Eigenschaft enthält den Status nach dem Herstellen einer Verbindung zu einem Broker.
Zugriffsfunktionen:
| bool | cleanSession() const |
| void | setCleanSession(bool cleanSession) |
Notifier-Signal:
| void | cleanSessionChanged(bool cleanSession) |
clientId : QString
Diese Eigenschaft enthält den Identifikationswert des Clients.
Jeder Client benötigt eine eindeutige ID, um eine Verbindung zu einem MQTT-Broker herstellen zu können. Wenn vom Benutzer keine Client-ID angegeben wird, wird bei Herstellung der Verbindung automatisch eine generiert.
Zugriffsfunktionen:
| QString | clientId() const |
| void | setClientId(const QString &clientId) |
Benachrichtigungssignal:
| void | clientIdChanged(QString clientId) |
error : ClientError
Gibt den aktuellen Fehler des Clients an.
Zugriffsfunktionen:
| QMqttClient::ClientError | error() const |
| void | setError(QMqttClient::ClientError error) |
Benachrichtigungssignal:
| void | errorChanged(QMqttClient::ClientError error) |
hostname : QString
Diese Eigenschaft enthält den Hostnamen des MQTT-Brokers, mit dem eine Verbindung hergestellt werden soll.
Wird über ` setTransport()` kein Transport angegeben, baut der Client selbst eine Socket-Verbindung zum angegebenen Hostnamen auf.
Zugriffsfunktionen:
| QString | hostname() const |
| void | setHostname(const QString &hostname) |
Benachrichtigungssignal:
| void | hostnameChanged(QString hostname) |
keepAlive : quint16
Diese Eigenschaft legt das Intervall fest, in dem regelmäßig Ping-Nachrichten an den Broker gesendet werden.
Sobald eine Verbindung zu einem Broker hergestellt ist, muss der Client regelmäßig Aktualisierungen senden, um zu signalisieren, dass er weiterhin erreichbar ist. Das Intervall zwischen diesen Aktualisierungen wird durch diese Eigenschaft festgelegt.
Das Intervall wird in Sekunden angegeben.
Wenn der Broker nicht innerhalb einer Karenzzeit antwortet, wird die Verbindung geschlossen.
Zugriffsfunktionen:
| quint16 | keepAlive() const |
| void | setKeepAlive(quint16 keepAlive) |
Benachrichtigungssignal:
| void | keepAliveChanged(quint16 keepAlive) |
Siehe auch autoKeepAlive(), requestPing() und pingResponseReceived().
password : QString
Diese Eigenschaft enthält das Passwort für die Verbindung zu einem Broker.
Zugriffsfunktionen:
| QString | password() const |
| void | setPassword(const QString &password) |
Notifier-Signal:
| void | passwordChanged(QString password) |
port : quint16
Diese Eigenschaft enthält den Port für die Verbindung zum MQTT-Broker.
Wenn über ` setTransport()` kein Transport angegeben wird, baut der Client eine Socket-Verbindung zu einem Host mit dieser Portnummer auf.
Zugriffsfunktionen:
| quint16 | port() const |
| void | setPort(quint16 port) |
Benachrichtigungssignal:
| void | portChanged(quint16 port) |
protocolVersion : ProtocolVersion
Diese Eigenschaft enthält die zu verwendende MQTT-Standardversion für Verbindungen.
Gibt die Version des Standards an, die der Client für die Verbindung zu einem Broker verwendet. Gültige Werte sind:
- 3: MQTT-Standardversion 3.1.
- 4: MQTT-Standardversion 3.1.1, oft als MQTT 4 bezeichnet.
- 5: MQTT-Standard 5.0.
Zugriffsfunktionen:
| QMqttClient::ProtocolVersion | protocolVersion() const |
| void | setProtocolVersion(QMqttClient::ProtocolVersion protocolVersion) |
Benachrichtigungssignal:
| void | protocolVersionChanged(QMqttClient::ProtocolVersion protocolVersion) |
state : ClientState
Diese Eigenschaft enthält den aktuellen Zustand des Clients.
Zugriffsfunktionen:
| QMqttClient::ClientState | state() const |
| void | setState(QMqttClient::ClientState state) |
Notifier-Signal:
| void | stateChanged(QMqttClient::ClientState state) |
username : QString
Diese Eigenschaft enthält den Benutzernamen für die Verbindung zu einem Broker.
Zugriffsfunktionen:
| QString | username() const |
| void | setUsername(const QString &username) |
Notifier-Signal:
| void | usernameChanged(QString username) |
willMessage : QByteArray
Diese Eigenschaft enthält die Nutzdaten einer Will-Nachricht.
Zugriffsfunktionen:
| QByteArray | willMessage() const |
| void | setWillMessage(const QByteArray &willMessage) |
Notifier-Signal:
| void | willMessageChanged(QByteArray willMessage) |
willQoS : quint8
Diese Eigenschaft gibt die QoS-Stufe für das Senden und Speichern der Will-Nachricht an.
Zugriffsfunktionen:
| quint8 | willQoS() const |
| void | setWillQoS(quint8 willQoS) |
Benachrichtigungssignal:
| void | willQoSChanged(quint8 willQoS) |
willRetain : bool
Diese Eigenschaft legt fest, ob die Will-Nachricht auf dem Broker gespeichert werden soll, damit zukünftige Abonnenten sie empfangen können.
Zugriffsfunktionen:
| bool | willRetain() const |
| void | setWillRetain(bool willRetain) |
Notifier-Signal:
| void | willRetainChanged(bool willRetain) |
willTopic : QString
Diese Eigenschaft enthält das Thema „Will“.
Zugriffsfunktionen:
| QString | willTopic() const |
| void | setWillTopic(const QString &willTopic) |
Benachrichtigungssignal:
| void | willTopicChanged(QString willTopic) |
Dokumentation der Mitgliedsfunktionen
[explicit] QMqttClient::QMqttClient(QObject *parent = nullptr)
Erstellt eine neue MQTT-Client-Instanz mit der angegebenen „ parent “.
[override virtual noexcept] QMqttClient::~QMqttClient()
Löscht einen MQTT-Client. Falls der MQTT-Client noch nicht vom MQTT-Broker getrennt war, wird die Verbindung automatisch getrennt.
Hinweis: Wenn ein Transport mit „ setTransport “ angegeben wird, muss dieser zu diesem Zeitpunkt gültig sein.
void QMqttClient::authenticate(const QMqttAuthenticationProperties &prop)
Sendet eine Authentifizierungsanfrage an den Broker. „ prop “ gibt die erforderlichen Informationen zur Bearbeitung der Authentifizierungsanfrage an.
Diese Funktion sollte erst aufgerufen werden, nachdem ein „ QMqttClient::authenticationRequested “-Signal ausgegeben wurde.
Hinweis: Dieerweiterte Authentifizierung ist Teil des MQTT 5.0-Standards und kann nur verwendet werden, wenn der Client „ MQTT_5_0 “ als „ ProtocolVersion “ angibt.
Siehe auch authenticationRequested() und authenticationFinished().
[signal] void QMqttClient::authenticationFinished(const QMqttAuthenticationProperties &p)
Dieses Signal wird nach Abschluss der erweiterten Authentifizierung ausgegeben. „ p “ enthält weitere Informationen zum Authentifizierungsprozess.
Nach erfolgreicher Authentifizierung wird „ QMqttClient::connected “ gesendet.
Hinweis: Dieerweiterte Authentifizierung ist Teil des MQTT 5.0-Standards und kann nur verwendet werden, wenn der Client „ MQTT_5_0 “ als „ ProtocolVersion “ angibt.
Siehe auch authenticationRequested() und authenticate().
[signal] void QMqttClient::authenticationRequested(const QMqttAuthenticationProperties &p)
Dieses Signal wird ausgegeben, nachdem ein Client „ QMqttClient::connectToHost “ oder „ QMqttClient::connectToHostEncrypted “ aufgerufen hat und bevor die Verbindung hergestellt wird. Bei der erweiterten Authentifizierung kann ein Broker zusätzliche Angaben anfordern, die durch den Aufruf von „ QMqttClient::authenticate “ bereitgestellt werden müssen. „ p “ gibt die vom Broker bereitgestellten Eigenschaften an.
Hinweis: Dieerweiterte Authentifizierung ist Teil des MQTT 5.0-Standards und kann nur verwendet werden, wenn der Client MQTT_5_0 als ProtocolVersion angibt.
Siehe auch authenticationFinished() und authenticate().
[signal] void QMqttClient::brokerSessionRestored()
Dieses Signal wird ausgelöst, nachdem ein Client erfolgreich eine Verbindung zu einem Broker hergestellt hat, wobei die Eigenschaft „ cleanSession “ auf „ false “ gesetzt ist, und der Broker die Sitzung wiederhergestellt hat.
Sitzungen können wiederhergestellt werden, wenn ein Client zuvor eine Verbindung unter Verwendung desselben „ clientId “ hergestellt hat.
[invokable] void QMqttClient::connectToHost()
Stellt eine Verbindung zum MQTT-Broker her.
Hinweis: Diese Funktion kann über das Metaobjekt-System und aus QML aufgerufen werden. Siehe Q_INVOKABLE.
void QMqttClient::connectToHostEncrypted(const QSslConfiguration &conf)
Stellt eine verschlüsselte Verbindung zum MQTT-Broker her.
conf Legt die für die Verbindung zu verwendende SSL-Konfiguration fest.
[invokable, since 6.10] void QMqttClient::connectToHostWebSocket(QWebSocket *webSocket = nullptr)
Legt einen WebSocket-Transporttyp fest und baut eine Verbindung zum MQTT-Broker auf. Der bisherige Transporttyp wird ersetzt. Wird „ webSocket “ angegeben, werden Hostname und Port ignoriert, und die Verbindung wird über diesen WebSocket hergestellt. „webSocket“ gehört dem aufrufenden Code und muss für die gesamte Lebensdauer des „ QMqttClient “-Objekts gültig sein.
Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.
Diese Funktion wurde in Qt 6.10 eingeführt.
[invokable, since 6.10] void QMqttClient::connectToHostWebSocketEncrypted(QWebSocket *webSocket = nullptr)
Legt einen sicheren WebSocket-Transporttyp fest und baut eine Verbindung zum MQTT-Broker auf. Der bisherige Transporttyp wird ersetzt. Wird „ webSocket “ angegeben, werden Hostname und Port ignoriert, und die Verbindung wird über diesen WebSocket hergestellt. „webSocket“ gehört dem aufrufenden Code und muss für die gesamte Lebensdauer des „ QMqttClient “-Objekts gültig sein.
Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.
Diese Funktion wurde in Qt 6.10 eingeführt.
[signal] void QMqttClient::connected()
Dieses Signal wird ausgesendet, wenn eine Verbindung hergestellt wurde.
QMqttConnectionProperties QMqttClient::connectionProperties() const
Gibt die vom Client angeforderten Verbindungseigenschaften an den Broker zurück.
Hinweis: ` QMqttConnectionProperties ` kann nur verwendet werden, wenn der Client ` MQTT_5_0 ` als ` ProtocolVersion` angibt.
Siehe auch setConnectionProperties().
[invokable] void QMqttClient::disconnectFromHost()
Trennt die Verbindung zum MQTT-Broker.
Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe Q_INVOKABLE.
[signal] void QMqttClient::disconnected()
Dieses Signal wird ausgelöst, wenn eine Verbindung geschlossen wurde. Eine Verbindung kann geschlossen werden, wenn disconnectFromHost() aufgerufen wird oder wenn der Broker die Verbindung trennt.
QMqttLastWillProperties QMqttClient::lastWillProperties() const
Gibt die Eigenschaften des letzten Testaments zurück.
Hinweis: „ QMqttLastWillProperties “ kann nur verwendet werden, wenn der Client „ MQTT_5_0 “ als „ ProtocolVersion “ angibt.
Siehe auch setLastWillProperties().
[signal] void QMqttClient::messageReceived(const QByteArray &message, const QMqttTopicName &topic = QMqttTopicName())
Dieses Signal wird ausgelöst, wenn eine neue Nachricht eingegangen ist. Die Kategorie der Nachricht wird durch „ topic “ angegeben, der Inhalt lautet „ message “.
[signal] void QMqttClient::messageSent(qint32 id)
Gibt an, dass eine über die Funktion „ publish()“ gesendete Nachricht vom Broker empfangen wurde. Die ID „ id “ entspricht der von „ publish() “ zurückgegebenen ID, um die Nachverfolgung des Status der Nachricht zu erleichtern.
[signal] void QMqttClient::messageStatusChanged(qint32 id, QMqtt::MessageStatus s, const QMqttMessageStatusProperties &properties)
Dieses Signal wird ausgelöst, wenn sich der Status der durch „ id “ identifizierten Nachricht ändert. „ s “ gibt den neuen Status der Nachricht an, und „ properties “ geben zusätzliche vom Server bereitgestellte Eigenschaften an.
[signal] void QMqttClient::pingResponseReceived()
Dieses Signal wird ausgegeben, nachdem der Broker auf einen Aufruf von ` requestPing()` oder eine Ping-Nachricht von ` keepAlive()` geantwortet hat und die Verbindung weiterhin besteht.
[invokable] qint32 QMqttClient::publish(const QMqttTopicName &topic, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false)
Veröffentlicht eine „ message “ beim Broker mit der angegebenen „ topic “. „ qos “ gibt die für die Übertragung der Nachricht erforderliche QoS-Stufe an.
Wenn „ retain “ auf „ true “ gesetzt ist, verbleibt die Nachricht auf dem Broker, sodass andere Clients eine Verbindung herstellen und die Nachricht empfangen können.
Gibt eine ID zurück, die intern zur Identifizierung der Nachricht verwendet wird.
Hinweis: Diese Funktion kann über das Metaobjektsystem und aus QML aufgerufen werden. Siehe „ Q_INVOKABLE “.
[invokable] qint32 QMqttClient::publish(const QMqttTopicName &topic, const QMqttPublishProperties &properties, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false)
Veröffentlicht eine „ message “ beim Broker mit den angegebenen Werten für „ properties “ und „ topic “. „ qos “ gibt die für die Übertragung der Nachricht erforderliche QoS-Stufe an.
Wenn „ retain “ auf „ true “ gesetzt ist, verbleibt die Nachricht auf dem Broker, sodass andere Clients eine Verbindung herstellen und die Nachricht empfangen können.
Gibt eine ID zurück, die intern zur Identifizierung der Nachricht verwendet wird.
Hinweis: „ properties “ wird nur dann an den Broker weitergeleitet, wenn der Client „ MQTT_5_0 “ als „ ProtocolVersion “ angibt.
Hinweis: Diese Funktion kann über das Metaobjekt-System und aus QML aufgerufen werden. Siehe Q_INVOKABLE.
bool QMqttClient::requestPing()
Sendet eine Ping-Nachricht an den Broker und erwartet eine Antwort.
Wenn die Verbindung aktiv ist und „ autoKeepAlive “ auf „ true “ gesetzt ist, schlägt der Aufruf dieser Funktion fehl, da der Client für die Verwaltung dieses Prozesses verantwortlich ist.
Die manuelle Verwendung von ` requestPing() ` erfordert einen Aufruf in jedem ` keepAlive `-Intervall, solange die Verbindung aktiv ist.
Um zu überprüfen, ob der Ping erfolgreich war, verbinden Sie sich mit dem Signal ` pingResponseReceived()`.
Gibt ` true ` zurück, wenn die Ping-Anfrage gesendet werden konnte.
Siehe auch pingResponseReceived(), autoKeepAlive() und keepAlive().
QMqttServerConnectionProperties QMqttClient::serverConnectionProperties() const
Gibt den von dem Broker nach einem Verbindungsversuch zurückgegebenen ` QMqttServerConnectionProperties ` zurück.
Dies kann verwendet werden, um zu überprüfen, ob die durch „ QMqttClient::setConnectionProperties “ festgelegten Verbindungs-Eigenschaften auf Client-Seite vom Broker akzeptiert wurden. Außerdem kann es im Falle eines fehlgeschlagenen Verbindungsversuchs zur Verbindungsdiagnose genutzt werden.
Hinweis: „ QMqttServerConnectionProperties “ kann nur verwendet werden, wenn der Client „ MQTT_5_0 “ als „ ProtocolVersion “ angibt.
Siehe auch connectionProperties().
void QMqttClient::setConnectionProperties(const QMqttConnectionProperties &prop)
Setzt die Verbindungseigenschaften auf „ prop “. Mit „ QMqttConnectionProperties “ kann der Server aufgefordert werden, einen bestimmten Funktionsumfang zu verwenden. Nach einer Verbindungsanfrage kann die Serverantwort durch Aufruf von „ QMqttClient::serverConnectionProperties “ abgerufen werden.
Hinweis: Die Verbindungseigenschaften können nur festgelegt werden, wenn sich der MQTT-Client im Zustand „ Disconnected “ befindet.
Hinweis: „ QMqttConnectionProperties “ kann nur verwendet werden, wenn der Client „ MQTT_5_0 “ als „ ProtocolVersion “ angibt.
Siehe auch „ connectionProperties“ ().
void QMqttClient::setLastWillProperties(const QMqttLastWillProperties &prop)
Setzt die Eigenschaften des „Last Will“ auf „ prop “. Mit „ QMqttLastWillProperties “ können zusätzliche Funktionen für die beim Broker gespeicherte „Last Will“-Nachricht festgelegt werden.
Hinweis: Die Verbindungseigenschaften können nur festgelegt werden, wenn sich der MQTT-Client im Zustand „ Disconnected “ befindet.
Hinweis: „ QMqttLastWillProperties “ kann nur verwendet werden, wenn der Client „ MQTT_5_0 “ als „ ProtocolVersion “ angibt.
Siehe auch „ lastWillProperties“ ().
void QMqttClient::setTransport(QIODevice *device, QMqttClient::TransportType transport)
Setzt den Transport auf „ device “. Ein Transport kann entweder vom Typ „Socket“ sein oder von „ QIODevice “ abgeleitet sein und wird durch „ transport “ angegeben.
Hinweis: Der Transport kann nur ausgetauscht werden, wenn sich der MQTT-Client im Zustand „ Disconnected “ befindet.
Hinweis: Das Festlegen eines benutzerdefinierten Transports für einen Client überträgt nicht die Verantwortung für die Verbindungsverwaltung oder die Eigentumsrechte. Der Transport muss für „ QIODevice “-basierte Transporte geöffnet oder für Socket-Typ-Transporte verbunden sein, bevor QMqttClient::connectToHost() aufgerufen wird.
Siehe auch „ transport()“.
QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, quint8 qos = 0)
Fügt ein neues Abonnement hinzu, um Benachrichtigungen unter topic zu erhalten. Der Parameter „ qos “ gibt die Stufe an, auf der Sicherheitsmeldungen empfangen werden. Weitere Informationen zu den verfügbaren QoS-Stufen finden Sie unter „Quality of Service“.
Diese Funktion gibt einen Zeiger auf ein ` QMqttSubscription` zurück. Wird dasselbe Thema zweimal abonniert, verweist der Rückgabewert auf dieselbe Abonnementinstanz. Der MQTT-Client ist der Eigentümer des Abonnements.
QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, const QMqttSubscriptionProperties &properties, quint8 qos = 0)
Fügt ein neues Abonnement hinzu, um Benachrichtigungen unter topic zu erhalten. Der Parameter „ properties “ gibt zusätzliche Abonnement-Eigenschaften an, die vom Broker überprüft werden sollen. Der Parameter „ qos “ gibt die Stufe an, auf der Sicherheitsmeldungen empfangen werden. Weitere Informationen zu den verfügbaren QoS-Stufen finden Sie unter „Quality of Service“.
Diese Funktion gibt einen Zeiger auf ein ` QMqttSubscription` zurück. Wird dasselbe Thema zweimal abonniert, verweist der Rückgabewert auf dieselbe Abonnementinstanz. Der MQTT-Client ist der Eigentümer des Abonnements.
Hinweis: „ properties “ wird nur dann an den Broker übergeben, wenn der Client „ MQTT_5_0 “ als „ ProtocolVersion “ angibt.
QIODevice *QMqttClient::transport() const
Gibt den Transport zurück, der für die Kommunikation mit dem Broker verwendet wird.
Siehe auch „ setTransport()“.
void QMqttClient::unsubscribe(const QMqttTopicFilter &topic)
Abmeldung von topic. Es werden keine Benachrichtigungen an die Abonnements gesendet, die über den Aufruf von subscribe() eingerichtet wurden.
Hinweis: Wenn ein Client die Verbindung zu einem Broker trennt, ohne sich abzumelden, speichert der Broker alle Nachrichten und veröffentlicht sie bei der nächsten Wiederverbindung.
void QMqttClient::unsubscribe(const QMqttTopicFilter &topic, const QMqttUnsubscriptionProperties &properties)
Abmeldung von topic. Es werden keine Benachrichtigungen an die Abonnements gesendet, die über den Aufruf von subscribe() erstellt wurden. properties gibt zusätzliche Benutzereigenschaften an, die an den Broker übergeben werden sollen.
Hinweis: Wenn ein Client die Verbindung zu einem Broker trennt, ohne sich abzumelden, speichert der Broker alle Nachrichten und veröffentlicht sie bei der nächsten Wiederverbindung.
Hinweis: „ properties “ wird nur dann an den Broker übergeben, wenn der Client „ MQTT_5_0 “ als „ ProtocolVersion “ angibt.
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.