Client MQTT simple
Création d'une application de télémétrie minimaliste.

Le client MQTT simple montre comment créer une application cliente minimaliste.
Pour utiliser l'application, vous devez d'abord spécifier un hôte, un port, l'activation ou la désactivation du mode sécurisé, l'activation ou la désactivation des WebSockets et le protocole. Cliquez ensuite sur « Se connecter ». Vous pouvez alors vous abonner à un sujet et envoyer un message, que vous recevrez également. Vous pouvez également exécuter l'application deux fois : publiez dans l'une et abonnez-vous dans l'autre, et les messages seront transmis.
Options de simpleclient
- Hôte : vous pouvez utiliser test.mosquitto.org ou broker.hivemq.com
- Port : le port auquel se connecter dépendra des options choisies pour les WebSockets et le cryptage
- WebSockets : vous pouvez spécifier « sélectionné » (activé) ou « non sélectionné » (désactivé)
- Sécurisé : vous pouvez choisir entre « sélectionné » (activé) ou « non sélectionné » (désactivé)
- Protocole : vous pouvez spécifier
- mqtt 3.1
- mqtt 3.1.1
- MQTT 5.0
- Sujet - Un sujet auquel s'abonner ou sur lequel publier
- Message - Un message à envoyer sur le sujet si vous publiez
Paramètres de connexion
Ce sont les combinaisons habituelles, qui fonctionneront avec test.mosquitto.org. Pour broker.hivemq.com, consultez les informations fournies dans les liens. Notez que si l'option « Secure » est activée, il peut être nécessaire d'installer des certificats sur l'ordinateur. Il peut également être nécessaire d'ajouter le certificat au client MQTT dans le code.
- Port 1883, « Secure » = désactivé, « WebSockets » = désactivé - MQTT sur TCP
- Port 8883, « Secure » = activé, WebSockets = désactivé – MQTT sur SSL
- Port 8080, Secure=désactivé, WebSockets=activé - MQTT via WebSockets
- Port 8081, Sécurité = activée, WebSockets = activés - MQTT sur WebSockets sécurisés
Pour plus d’informations sur les brokers, consultez :
Remarque : les numérosde port 1883 et 8080 ne sont pas chiffrés et ne conviennent donc qu'à des fins de développement et de test. En production, utilisez toujours des connexions chiffrées.
Remarque : WebAssembly ne prend en charge que les connexions WebSockets activées.
Création d’un client
Tout d’abord, nous utilisons la classe ` QMqttClient ` pour créer un client MQTT. Cette classe fournit des propriétés permettant de définir un identifiant client unique, ainsi que le nom d’hôte et le port du courtier auquel se connecter :
m_client = new QMqttClient(this);
m_client->setHostname(ui->lineEditHost->text());
m_client->setPort(static_cast<quint16>(ui->spinBoxPort->value()));Nous ne définissons pas l’identifiant du client ; celui-ci sera donc généré automatiquement.
Ensuite, nous nous connectons à ` QMqttClient::messageReceived()` pour recevoir tous les messages envoyés au courtier :
connect(m_client, &QMqttClient::messageReceived, this, [this](const QByteArray &message, const QMqttTopicName &topic) {
const QString content = QDateTime::currentDateTime().toString()
+ " Received Topic: "_L1
+ topic.name()
+ " Message: "_L1
+ message
+ u'\n';
ui->editLog->insertPlainText(content);
});Lorsque les utilisateurs s’abonnent à des sujets dans le client, nous appelons la méthode ` QMqttClient::subscribe()` sur le sujet spécifié :
void MainWindow::on_buttonSubscribe_clicked()
{
auto subscription = m_client->subscribe(ui->lineEditTopic->text());
if (!subscription) {
QMessageBox::critical(this, u"Error"_s,
u"Could not subscribe. Is there a valid connection?"_s);
return;
}Dans cet exemple, nous nous abonnons à tous les sujets. Pour plus d’informations sur la manière de recevoir des messages sur des sujets particuliers, consultez l’exemple « Abonnements MQTT ».
Pour un exemple d’utilisation de la classe ` QMqttClient ` dans une application « Qt Quick », consultez la section «Qt Quick Subscription».
Fichiers :
© 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.