Sur cette page

QMqttClient Class

La classe QMqttClient représente le point d'accès central qui communique avec un courtier MQTT. En savoir plus...

En-tête : #include <QMqttClient>
CMake : find_package(Qt6 REQUIRED COMPONENTS Mqtt)
target_link_libraries(mytarget PRIVATE Qt6::Mqtt)
qmake : QT += mqtt
Hérite de : QObject

Types publics

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 }

Propriétés

Fonctions publiques

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

Emplacements publics

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)

Signaux

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)

Description détaillée

Un client MQTT est un programme ou un appareil qui utilise le protocole MQTT pour établir une connexion réseau avec un serveur MQTT, également appelé « broker ». La requête de connexion doit contenir un identifiant client unique. Elle peut également contenir, de manière facultative, un sujet « Will », un message « Will », un nom d’utilisateur et un mot de passe.

Une fois la connexion établie, un client peut envoyer des messages susceptibles d’intéresser d’autres clients, s’abonner pour recevoir des notifications sur des sujets, se désabonner pour supprimer une demande de notifications, et se déconnecter du courtier.

Documentation sur les types de membres

enum QMqttClient::ClientError

Ce type d'énumération spécifie l'état d'erreur d'un client.

ConstanteValeurDescription
QMqttClient::NoError0Aucune erreur ne s'est produite.
QMqttClient::InvalidProtocolVersion1Le courtier n'accepte pas de connexion utilisant la version de protocole spécifiée.
QMqttClient::IdRejected2L'identifiant du client est incorrect. Cela peut être lié à sa longueur.
QMqttClient::ServerUnavailable3La connexion réseau a été établie, mais le service n'est pas disponible côté courtier.
QMqttClient::BadUsernameOrPassword4Les données du nom d'utilisateur ou du mot de passe sont incorrectes.
QMqttClient::NotAuthorized5Le client n’est pas autorisé à se connecter.
QMqttClient::TransportInvalid256Le protocole de transport sous-jacent a généré une erreur. Par exemple, la connexion a peut-être été interrompue de manière inattendue.
QMqttClient::ProtocolViolation257Le client a détecté une violation du protocole et a donc fermé la connexion.
QMqttClient::UnknownError258Une erreur inconnue s’est produite.
QMqttClient::Mqtt5SpecificError259L'erreur est liée au niveau 5 du protocole MQTT. Un code de motif peut fournir plus de détails.

enum QMqttClient::ClientState

Ce type d'énumération spécifie les états dans lesquels un client peut se trouver.

ConstanteValeurDescription
QMqttClient::Disconnected0Le client est déconnecté du courtier.
QMqttClient::Connecting1Une demande de connexion a été effectuée, mais le courtier n’a pas encore approuvé la connexion.
QMqttClient::Connected2Le client est connecté au courtier.

enum QMqttClient::ProtocolVersion

Cette énumération spécifie la version du protocole MQTT à utiliser lors de la communication avec un courtier.

ConstanteValeurDescription
QMqttClient::MQTT_3_13Norme MQTT 3.1
QMqttClient::MQTT_3_1_14Norme MQTT 3.1.1, communément appelée version 4
QMqttClient::MQTT_5_05Norme MQTT 5.0

enum QMqttClient::TransportType

Ce type d'énumération spécifie la méthode de connexion à utiliser pour établir une connexion avec un courtier.

ConstanteValeurDescription
QMqttClient::IODevice0Le transport utilise une classe dérivée de ` QIODevice`.
QMqttClient::AbstractSocket1Le transport utilise une classe dérivée de l’ QAbstractSocket.
QMqttClient::SecureSocket2Le transport utilise une classe basée sur une classe « QSslSocket ».
QMqttClient::WebSocket (since Qt 6.10)3Le transport utilise une classe dérivée d'une classe « QIODevice », qui utilise en interne une classe « QWebSocket ».
QMqttClient::SecureWebSocket (since Qt 6.10)4Le transport utilise une classe dérivée de « QIODevice », qui utilise en interne une « QWebSocket » sécurisée.

Documentation sur les propriétés

autoKeepAlive : bool

Cette propriété détermine si le client gère automatiquement les messages de maintien de connexion vers le serveur.

Si cette propriété est définie sur « true », le client enverra automatiquement un message de ping au serveur à l'intervalle « keepAlive ».

Sinon, l'utilisateur devra appeler manuellement la méthode ` requestPing ` dans l'intervalle spécifié pour la connexion. Si aucun ping n'a été envoyé au cours de cet intervalle, le serveur se déconnectera.

La valeur par défaut de cette propriété est true.

Fonctions d'accès :

bool autoKeepAlive() const
void setAutoKeepAlive(bool autoKeepAlive)

Signal de notification :

void autoKeepAliveChanged(bool autoKeepAlive)

Voir également keepAlive(), requestPing(), serverConnectionProperties() et pingResponseReceived().

cleanSession : bool

Cette propriété contient l'état après la connexion à un courtier.

Fonctions d'accès :

bool cleanSession() const
void setCleanSession(bool cleanSession)

Signal de notification :

void cleanSessionChanged(bool cleanSession)

clientId : QString

Cette propriété contient la valeur de l'identifiant du client.

Chaque client doit disposer d'un identifiant unique pour pouvoir se connecter à un courtier MQTT. Si aucun identifiant de client n'est spécifié par l'utilisateur, un identifiant sera généré automatiquement lors de l'établissement de la connexion.

Fonctions d'accès :

QString clientId() const
void setClientId(const QString &clientId)

Signal de notification :

void clientIdChanged(QString clientId)

error : ClientError

Indique l'erreur actuelle du client.

Fonctions d’accès :

QMqttClient::ClientError error() const
void setError(QMqttClient::ClientError error)

Signal de notification :

void errorChanged(QMqttClient::ClientError error)

hostname : QString

Cette propriété contient le nom d’hôte du courtier MQTT auquel se connecter.

Si aucun transport n'est spécifié via ` setTransport()`, le client établira lui-même une connexion par socket vers le nom d'hôte spécifié.

Fonctions d'accès :

QString hostname() const
void setHostname(const QString &hostname)

Signal de notification :

void hostnameChanged(QString hostname)

keepAlive : quint16

Cette propriété définit l'intervalle auquel des messages ping réguliers sont envoyés au courtier.

Une fois la connexion à un courtier établie, le client doit envoyer des mises à jour fréquentes pour signaler qu’il est toujours joignable. L’intervalle entre ces mises à jour est défini par cette propriété.

L'intervalle est exprimé en secondes.

Si le courtier ne répond pas dans un délai de grâce, la connexion sera fermée.

Fonctions d’accès :

quint16 keepAlive() const
void setKeepAlive(quint16 keepAlive)

Signal de notification :

void keepAliveChanged(quint16 keepAlive)

Voir également autoKeepAlive(), requestPing() et pingResponseReceived().

password : QString

Cette propriété contient le mot de passe permettant de se connecter à un courtier.

Fonctions d'accès :

QString password() const
void setPassword(const QString &password)

Signal de notification :

void passwordChanged(QString password)

port : quint16

Cette propriété contient le numéro de port permettant de se connecter au broker MQTT.

Si aucun transport n'est spécifié via la fonction ` setTransport()`, le client établira une connexion par socket vers un hôte utilisant ce numéro de port.

Fonctions d'accès :

quint16 port() const
void setPort(quint16 port)

Signal de notification :

void portChanged(quint16 port)

protocolVersion : ProtocolVersion

Cette propriété définit la version de la norme MQTT à utiliser pour les connexions.

Spécifie la version de la norme utilisée par le client pour se connecter à un courtier. Les valeurs valides sont :

  • 3 : version 3.1 de la norme MQTT.
  • 4 : version 3.1.1 de la norme MQTT, souvent appelée MQTT 4.
  • 5 : norme MQTT 5.0.

Fonctions d'accès :

QMqttClient::ProtocolVersion protocolVersion() const
void setProtocolVersion(QMqttClient::ProtocolVersion protocolVersion)

Signal de notification :

void protocolVersionChanged(QMqttClient::ProtocolVersion protocolVersion)

state : ClientState

Cette propriété contient l'état actuel du client.

Fonctions d'accès :

QMqttClient::ClientState state() const
void setState(QMqttClient::ClientState state)

Signal de notification :

void stateChanged(QMqttClient::ClientState state)

username : QString

Cette propriété contient le nom d'utilisateur permettant de se connecter à un courtier.

Fonctions d'accès :

QString username() const
void setUsername(const QString &username)

Signal de notification :

void usernameChanged(QString username)

willMessage : QByteArray

Cette propriété contient le contenu d'un message « Will ».

Fonctions d'accès :

QByteArray willMessage() const
void setWillMessage(const QByteArray &willMessage)

Signal de notification :

void willMessageChanged(QByteArray willMessage)

willQoS : quint8

Cette propriété définit le niveau de qualité de service (QoS) pour l'envoi et le stockage du message de volonté.

Fonctions d'accès :

quint8 willQoS() const
void setWillQoS(quint8 willQoS)

Signal de notification :

void willQoSChanged(quint8 willQoS)

willRetain : bool

Cette propriété détermine si le message « Will » doit être conservé sur le courtier afin que les futurs abonnés puissent le recevoir.

Fonctions d'accès :

bool willRetain() const
void setWillRetain(bool willRetain)

Signal de notification :

void willRetainChanged(bool willRetain)

willTopic : QString

Cette propriété contient le sujet « Will ».

Fonctions d'accès :

QString willTopic() const
void setWillTopic(const QString &willTopic)

Signal de notification :

void willTopicChanged(QString willTopic)

Documentation des fonctions membres

[explicit] QMqttClient::QMqttClient(QObject *parent = nullptr)

Crée une nouvelle instance de client MQTT avec l'adresse parent indiquée.

[override virtual noexcept] QMqttClient::~QMqttClient()

Supprime un client MQTT. Si le client MQTT n'était pas déjà déconnecté du courtier MQTT, il sera automatiquement déconnecté.

Remarque : si un transport est spécifié avec l'option « setTransport », celui-ci doit être valide à ce stade.

void QMqttClient::authenticate(const QMqttAuthenticationProperties &prop)

Envoie une requête d'authentification au courtier. La variable ` prop ` spécifie les informations requises pour répondre à cette requête d'authentification.

Cette fonction ne doit être appelée qu’après l’émission d’un signal « QMqttClient::authenticationRequested ».

Remarque : l'authentificationétendue fait partie de la norme MQTT 5.0 et ne peut être utilisée que lorsque le client spécifie MQTT_5_0 comme ProtocolVersion.

Voir également authenticationRequested() et authenticationFinished().

[signal] void QMqttClient::authenticationFinished(const QMqttAuthenticationProperties &p)

Ce signal est émis une fois l'authentification étendue terminée. La méthode ` p ` fournit des informations détaillées sur le processus d'authentification.

Une fois l’authentification réussie, le signal « QMqttClient::connected » est émis.

Remarque : l’authentificationétendue fait partie de la norme MQTT 5.0 et ne peut être utilisée que lorsque le client spécifie MQTT_5_0 comme ProtocolVersion.

Voir également authenticationRequested() et authenticate().

[signal] void QMqttClient::authenticationRequested(const QMqttAuthenticationProperties &p)

Ce signal est émis après qu’un client a appelé ` QMqttClient::connectToHost ` ou ` QMqttClient::connectToHostEncrypted `, et avant l’établissement de la connexion. Dans le cadre de l’authentification étendue, un courtier peut demander des informations supplémentaires qui doivent être fournies en appelant ` QMqttClient::authenticate`. ` p ` spécifie les propriétés fournies par le courtier.

Remarque : l’authentificationétendue fait partie de la norme MQTT 5.0 et ne peut être utilisée que lorsque le client spécifie MQTT_5_0 comme ProtocolVersion.

Voir également authenticationFinished() et authenticate().

[signal] void QMqttClient::brokerSessionRestored()

Ce signal est émis lorsqu'un client s'est connecté avec succès à un courtier avec la propriété ` cleanSession ` définie sur ` false`, et que le courtier a rétabli la session.

Les sessions peuvent être rétablies si un client s'est déjà connecté en utilisant le même clientId.

[invokable] void QMqttClient::connectToHost()

Établit une connexion avec le serveur MQTT.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

void QMqttClient::connectToHostEncrypted(const QSslConfiguration &conf)

Établit une connexion chiffrée avec le courtier MQTT.

conf Spécifie la configuration SSL à utiliser pour la connexion

[invokable, since 6.10] void QMqttClient::connectToHostWebSocket(QWebSocket *webSocket = nullptr)

Définit un type de transport WebSocket et établit une connexion avec le courtier MQTT. Le type de transport précédent est remplacé. Si webSocket est fourni, le nom d’hôte et le port sont ignorés, et la connexion s’effectue via ce WebSocket. webSocket appartient au code appelant et doit rester valide pendant toute la durée de vie de l’objet QMqttClient.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

Cette fonction a été introduite dans Qt 6.10.

[invokable, since 6.10] void QMqttClient::connectToHostWebSocketEncrypted(QWebSocket *webSocket = nullptr)

Définit un type de transport WebSocket sécurisé et établit une connexion avec le broker MQTT. Le type de transport précédent est remplacé. Si l'adresse webSocket est fournie, le nom d'hôte et le port sont ignorés, et la connexion s'effectue via ce WebSocket. L'objet `webSocket` appartient au code appelant et doit rester valide pendant toute la durée de vie de l'objet ` QMqttClient `.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

Cette fonction a été introduite dans Qt 6.10.

[signal] void QMqttClient::connected()

Ce signal est émis lorsqu'une connexion a été établie.

QMqttConnectionProperties QMqttClient::connectionProperties() const

Renvoie au courtier les propriétés de connexion demandées par le client.

Remarque : la fonction ` QMqttConnectionProperties ` ne peut être utilisée que lorsque le client spécifie ` MQTT_5_0 ` comme ` ProtocolVersion`.

Voir également setConnectionProperties().

[invokable] void QMqttClient::disconnectFromHost()

Se déconnecte du broker MQTT.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

[signal] void QMqttClient::disconnected()

Ce signal est émis lorsqu'une connexion a été fermée. Une connexion peut être fermée lors de l'appel de la fonction ` disconnectFromHost()` ou lorsque le courtier se déconnecte.

QMqttLastWillProperties QMqttClient::lastWillProperties() const

Renvoie les propriétés de la dernière volonté.

Remarque : la fonction ` QMqttLastWillProperties ` ne peut être utilisée que lorsque le client spécifie ` MQTT_5_0 ` comme ` ProtocolVersion`.

Voir également setLastWillProperties().

[signal] void QMqttClient::messageReceived(const QByteArray &message, const QMqttTopicName &topic = QMqttTopicName())

Ce signal est émis lorsqu'un nouveau message a été reçu. La catégorie du message est indiquée par topic, son contenu étant message.

[signal] void QMqttClient::messageSent(qint32 id)

Indique qu'un message envoyé via la fonction ` publish()` a été reçu par le courtier. L'id est identique à celui renvoyé par ` publish() `, ce qui facilite le suivi du statut du message.

[signal] void QMqttClient::messageStatusChanged(qint32 id, QMqtt::MessageStatus s, const QMqttMessageStatusProperties &properties)

Ce signal est émis lorsque le statut du message identifié par id change. s indique le nouveau statut du message, et properties précise les propriétés supplémentaires fournies par le serveur.

[signal] void QMqttClient::pingResponseReceived()

Ce signal est émis lorsque le courtier répond à un appel ` requestPing()` ou à un message de ping ` keepAlive()`, et que la connexion est toujours valide.

[invokable] qint32 QMqttClient::publish(const QMqttTopicName &topic, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false)

Publie un message de type « message » vers le broker avec l’ topic spécifiée. Le paramètre « qos » définit le niveau de qualité de service (QoS) requis pour le transfert du message.

Si retain est défini sur true, le message restera sur le broker afin que d’autres clients puissent se connecter et le recevoir.

Renvoie un identifiant utilisé en interne pour identifier le message.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

[invokable] qint32 QMqttClient::publish(const QMqttTopicName &topic, const QMqttPublishProperties &properties, const QByteArray &message = QByteArray(), quint8 qos = 0, bool retain = false)

Publie un message « message » vers le courtier avec les paramètres properties et topic spécifiés. Le paramètre qos définit le niveau de qualité de service (QoS) requis pour le transfert du message.

Si retain est défini sur true, le message restera sur le broker afin que d’autres clients puissent se connecter et le recevoir.

Renvoie un identifiant utilisé en interne pour identifier le message.

Remarque : properties ne sera transmis au courtier que lorsque le client spécifie MQTT_5_0 comme ProtocolVersion.

Remarque : cette fonction peut être appelée via le système de méta-objets et depuis QML. Voir Q_INVOKABLE.

bool QMqttClient::requestPing()

Envoie un message « ping » au courtier et attend une réponse.

Si la connexion est active et que la valeur de « autoKeepAlive » est « true », l'appel de cette fonction échouera, car c'est au client qu'il incombe de gérer ce processus.

L'utilisation manuelle de ` requestPing() ` nécessite un appel à chaque fois au cours de l'intervalle ` keepAlive ` tant que la connexion est active.

Pour vérifier si le ping a abouti, abonnez-vous au signal ` pingResponseReceived()`.

Renvoie ` true ` si la requête de ping a pu être envoyée.

Voir également pingResponseReceived(), autoKeepAlive() et keepAlive().

QMqttServerConnectionProperties QMqttClient::serverConnectionProperties() const

Renvoie la méthode ` QMqttServerConnectionProperties ` fournie par le courtier après une tentative de connexion.

Cette fonction permet de vérifier que les propriétés de connexion côté client définies par ` QMqttClient::setConnectionProperties ` ont bien été acceptées par le courtier. De plus, en cas d'échec de la tentative de connexion, elle peut être utilisée à des fins de diagnostic.

Remarque : ` QMqttServerConnectionProperties ` ne peut être utilisé que lorsque le client spécifie ` MQTT_5_0 ` comme ` ProtocolVersion`.

Voir également connectionProperties().

void QMqttClient::setConnectionProperties(const QMqttConnectionProperties &prop)

Définit les propriétés de connexion sur « prop ». La méthode « QMqttConnectionProperties » permet de demander au serveur d'utiliser un ensemble de fonctionnalités spécifiques. Après une requête de connexion, la réponse du serveur peut être obtenue en appelant la méthode « QMqttClient::serverConnectionProperties ».

Remarque : les propriétés de connexion ne peuvent être définies que si le client MQTT est dans l’état « Disconnected ».

Remarque : la méthode ` QMqttConnectionProperties ` ne peut être utilisée que lorsque le client spécifie ` MQTT_5_0 ` comme ` ProtocolVersion`.

Voir également connectionProperties().

void QMqttClient::setLastWillProperties(const QMqttLastWillProperties &prop)

Définit les propriétés du message de dernière volonté sur « prop ». L'option « QMqttLastWillProperties » permet de définir des fonctionnalités supplémentaires pour le message de dernière volonté stocké chez le courtier.

Remarque : les propriétés de connexion ne peuvent être définies que si le client MQTT est à l’état « Disconnected ».

Remarque : l’état « QMqttLastWillProperties » ne peut être utilisé que lorsque le client spécifie « MQTT_5_0 » comme « ProtocolVersion ».

Voir également lastWillProperties().

void QMqttClient::setTransport(QIODevice *device, QMqttClient::TransportType transport)

Définit le transport sur « device ». Un transport peut être soit de type socket, soit dérivé de « QIODevice », et est spécifié par « transport ».

Remarque : le transport ne peut être remplacé que si le client MQTT est dans l’état « Disconnected ».

Remarque : la configuration d’un transport personnalisé pour un client ne transfère pas la responsabilité de la gestion de la connexion ni de sa propriété. Le transport doit être ouvert pour les transports de type « QIODevice » ou connecté pour les transports de type « socket » avant d’appeler la fonction QMqttClient::connectToHost().

Voir également transport().

QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, quint8 qos = 0)

Ajoute un nouvel abonnement pour recevoir des notifications sur topic. Le paramètre qos spécifie le niveau auquel les messages de sécurité sont reçus. Pour plus d’informations sur les niveaux de qualité de service (QoS) disponibles, consultez la section « Qualité de service ».

Cette fonction renvoie un pointeur vers un objet ` QMqttSubscription`. Si le même sujet fait l'objet de deux abonnements, la valeur renvoyée pointe vers la même instance d'abonnement. Le client MQTT est le propriétaire de l'abonnement.

QMqttSubscription *QMqttClient::subscribe(const QMqttTopicFilter &topic, const QMqttSubscriptionProperties &properties, quint8 qos = 0)

Ajoute un nouvel abonnement pour recevoir des notifications sur topic. Le paramètre properties spécifie des propriétés d'abonnement supplémentaires qui doivent être validées par le courtier. Le paramètre qos spécifie le niveau auquel les messages de sécurité sont reçus. Pour plus d'informations sur les niveaux de qualité de service (QoS) disponibles, consultez la section Qualité de service.

Cette fonction renvoie un pointeur vers un objet ` QMqttSubscription`. Si le même sujet fait l’objet de deux abonnements, la valeur renvoyée pointe vers la même instance d’abonnement. Le client MQTT est le propriétaire de l’abonnement.

Remarque : l’ properties ne sera transmise au courtier que si le client spécifie MQTT_5_0 comme ProtocolVersion.

QIODevice *QMqttClient::transport() const

Renvoie le transport utilisé pour la communication avec le courtier.

Voir aussi setTransport().

void QMqttClient::unsubscribe(const QMqttTopicFilter &topic)

Se désabonne de topic. Aucune notification ne sera envoyée aux abonnements créés via l'appel de la fonction subscribe().

Remarque : si un client se déconnecte d'un courtier sans se désabonner, le courtier stockera tous les messages et les publiera lors de la prochaine reconnexion.

void QMqttClient::unsubscribe(const QMqttTopicFilter &topic, const QMqttUnsubscriptionProperties &properties)

Se désabonne de topic. Aucune notification ne sera envoyée pour les abonnements effectués via l’appel de subscribe(). properties spécifie des propriétés utilisateur supplémentaires à transmettre au courtier.

Remarque : si un client se déconnecte d’un courtier sans se désabonner, le courtier stockera tous les messages et les publiera lors de la prochaine reconnexion.

Remarque : properties ne sera transmis au courtier que si le client spécifie MQTT_5_0 comme ProtocolVersion.

© 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.