Einfacher MQTT-Client
Erstellung einer minimalistischen Telemetrie-Anwendung.

„Einfacher MQTT-Client“ zeigt, wie man eine minimalistische Client-Anwendung erstellt.
Um die Anwendung zu nutzen, geben Sie zunächst einen Host, einen Port, die Optionen „Sicher“ (ein/aus) und „WebSockets“ (ein/aus) sowie das Protokoll an. Klicken Sie anschließend auf „Verbinden“. Danach können Sie ein Topic abonnieren und eine Nachricht senden, die Sie auch erhalten werden. Sie können die Anwendung auch zweimal ausführen. Veröffentlichen Sie in einer Instanz und abonnieren Sie in der anderen – die Nachrichten werden dann übertragen.
Optionen von „simpleclient“
- Host – Sie können „test.mosquitto.org“ oder „broker.hivemq.com“ verwenden
- Port – Der Port, mit dem die Verbindung hergestellt werden soll, hängt von der Auswahl bei „WebSockets“ und „Sicherheit“ ab
- WebSockets – Sie können Folgendes angeben: „Ausgewählt“ (aktiviert) oder „Nicht ausgewählt“ (deaktiviert)
- „Secure“ – Sie können Folgendes angeben: „ausgewählt“ (aktiviert) oder „nicht ausgewählt“ (deaktiviert)
- Protokoll – Sie können Folgendes angeben
- mqtt 3.1
- MQTT 3.1.1
- MQTT 5.0
- Thema – Ein Thema, das veröffentlicht oder abonniert werden soll
- Nachricht – Eine Nachricht, die bei Veröffentlichung über das Thema gesendet werden soll
Verbindungseinstellungen
Dies sind die üblichen Kombinationen, die mit test.mosquitto.org funktionieren. Für broker.hivemq.com beachten Sie bitte die Informationen in den Links. Beachten Sie, dass bei aktivierter Sicherheitsoption möglicherweise Zertifikate auf dem Computer installiert werden müssen. Möglicherweise muss das Zertifikat auch im Code zum MQTT-Client hinzugefügt werden.
- Port 1883, „Secure“=deaktiviert, „WebSockets“=deaktiviert – MQTT über TCP
- Port 8883, „Secure“ = aktiviert, „WebSockets“ = deaktiviert – MQTT über SSL
- Port 8080, „Secure“ = deaktiviert, WebSockets = aktiviert – MQTT über WebSockets
- Port 8081, Secure=aktiviert, WebSockets=aktiviert – MQTT über sichere WebSockets
Weitere Informationen zu den Brokern finden Sie unter:
Hinweis: Die Portnummern 1883 und 8080 sind nicht verschlüsselt und eignen sich daher nur für Entwicklungs- und Testzwecke. Verwenden Sie im Produktivbetrieb stets verschlüsselte Verbindungen.
Hinweis: WebAssembly unterstützt nur WebSockets.
Erstellen eines Clients
Zunächst erstellen wir mithilfe der Klasse „ QMqttClient “ einen MQTT-Client. Die Klasse bietet Eigenschaften zum Festlegen einer eindeutigen Client-ID sowie des Hostnamens und des Ports des Brokers, mit dem eine Verbindung hergestellt werden soll:
m_client = new QMqttClient(this);
m_client->setHostname(ui->lineEditHost->text());
m_client->setPort(static_cast<quint16>(ui->spinBoxPort->value()));Wir legen die Client-ID nicht fest, daher wird sie automatisch für uns generiert.
Als Nächstes stellen wir mit ` QMqttClient::messageReceived()` eine Verbindung her, um alle an den Broker gesendeten Nachrichten zu empfangen:
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);
});Wenn Benutzer im Client Themen abonnieren, rufen wir ` QMqttClient::subscribe()` für das angegebene Thema auf:
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;
}In diesem Beispiel abonnieren wir alle Themen. Weitere Informationen zum Empfang von Nachrichten zu bestimmten Themen finden Sie im Beispiel „MQTT-Abonnements “.
Ein Beispiel für die Verwendung der Klasse „ QMqttClient “ in einer „ Qt Quick “-Anwendung finden Sie unter „Qt Quick -Abonnement“.
Dateien:
© 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.