Delphi-MQTT-Client — Verbindung zu jedem MQTT-3.1-/-5.0-Broker
Eine native MQTT-3.1.1- und MQTT-5.0-Client-Komponente für Delphi und C++Builder. Publish, Subscribe, Retained Messages, Last Will, QoS 0/1/2, TLS, Shared Subscriptions und die volle MQTT-5-Property-Oberfläche — verifiziert gegen HiveMQ, Mosquitto, EMQX, AWS IoT Core und Azure IoT Hub.
MQTT ist das De-facto-Messaging-Protokoll für IoT, Telemetrie, Mobile Push und vernetzte Fahrzeuge. Bring es in deine Delphi-Codebasis — ohne ein einziges Byte Framing zu schreiben.
Ein Delphi-MQTT-Client lässt deine VCL- oder FMX-Anwendung das OASIS-MQTT-Protokoll sprechen — das schlanke Publish/Subscribe-Protokoll, das für eingeschränkte Geräte und schmalbandige, latenzreiche Netzwerke entworfen wurde. Mit sgcWebSockets bekommst du die vollständige Client-Oberfläche als einzige nichtvisuelle Komponente TsgcWSPClient_MQTT, die von Delphi 7 bis Delphi 13 läuft — auf jeder Embarcadero-Zielplattform (Win32, Win64, Linux64, macOS, iOS, Android).
Die Komponente implementiert beide MQTT-Versionen im selben Codepfad: das lange ausgerollte MQTT 3.1.1 (OASIS-Standard, seit 2014 in praktisch jedem IoT-Broker) und das moderne MQTT 5.0 (mit Topic Aliases, Session Expiry, User Properties, Enhanced Authentication, Request/Response und Shared Subscriptions). Eine einzige Eigenschaft — Version — schaltet zwischen beiden um.
Komponenten-Klasse
TsgcWSPClient_MQTT
Transports
Natives TCP (1883 / 8883), WebSocket (80 / 443), TLS über OpenSSL oder SChannel
Versionen
MQTT 3.1.1 & MQTT 5.0
Plattformen
Windows, macOS, Linux, iOS, Android, .NET
Broker
Funktioniert mit jedem MQTT-Broker, den wir testen
Ein spezifikationskonformer Client ist im Prinzip broker-agnostisch — aber reale Broker haben Eigenheiten. Wir testen jedes Release gegen die Broker, die unsere Kunden tatsächlich einsetzen.
HiveMQ & HiveMQ Cloud
Volle MQTT-5-Property-Oberfläche, Shared Subscriptions, Enhanced Auth und HiveMQ-Cluster. Der kostenlose Cloud-Tier ist der einfachste Weg, die Komponente Ende-zu-Ende auszuprobieren.
Eclipse Mosquitto
Der Open-Source-Referenz-Broker. Starte ihn lokal mit docker run -p 1883:1883 eclipse-mosquitto und hast in 30 Sekunden ein Entwicklungsziel.
EMQX
Massiv skalierender Erlang-Broker mit Rule Engine, Kafka-Bridges und Shared Subscriptions. Produktionsreif bei Millionen Verbindungen.
AWS IoT Core
X.509-Client-Zertifikate, ALPN-ausgehandeltes MQTT auf 443, SigV4-signierter WebSocket und die AWS-IoT-Broker-Quotas. Siehe die dedizierte Seite zu AWS IoT Core.
Azure IoT Hub
Geräte-SAS-Tokens, Twin-/Direct-Method-Topics, DPS-Provisionierung. Siehe die dedizierte Seite zum Azure IoT Hub.
Google Cloud IoT
JWT-basierte Geräteauthentifizierung auf Port 8883. Die Komponente erzeugt und rotiert das JWT automatisch.
RabbitMQ Web-MQTT
Das RabbitMQ-Web-MQTT-Plugin auf Port 15675 — derselbe Broker für Browser und Delphi-Clients über einen einzigen TLS-Port.
VerneMQ, ActiveMQ, Artemis
Bestehen alle die Integrationstest-Suite. Multiprotokoll-Koexistenz mit AMQP / STOMP / JMS frei Haus.
Funktionen
QoS, Retained, Will, TLS — die ganze Oberfläche
Jedes Wire-Level-MQTT-Feature ist als Eigenschaft, Methode oder Event freigegeben — nichts verborgen.
Quality of Service 0/1/2
Fire-and-Forget (QoS 0), At-Least-Once mit PUBACK (QoS 1) und Exactly-Once mit dem Vier-Wege-Handshake PUBREC → PUBREL → PUBCOMP (QoS 2). Pro Publish()-Aufruf wählbar.
Retained Messages
Markiere eine Publikation als retained, sodass der Broker den zuletzt bekannten Wert an jeden zukünftigen Subscriber liefert — das Standardmuster für „Current State“-Topics.
Last Will & Testament
LastWillTestament registriert ein Topic + Payload, das der Broker veröffentlicht, wenn der Client unsauber wegbricht — das kanonische Gerät-Offline-Signal.
Clean / persistente Sessions
Subscriptions und nicht ausgelieferte QoS-1/2-Nachrichten überleben Reconnects, wenn CleanSession false ist — überbrücke intermittierende Konnektivität ohne Datenverlust.
TLS & mTLS
MQTTS auf 8883 mit OpenSSL oder SChannel. Lade Zertifikate von der Festplatte, aus dem Windows-Zertifikatsspeicher, aus PKCS#12-Bundles oder von Hardware-Token.
WebSocket-Transport
Stecke die Komponente in einen TsgcWebSocketClient, um MQTT über WSS auf Port 443 zu fahren — durch jeden HTTP-bewussten Loadbalancer oder Firmen-Proxy hindurch.
MQTT-5-Properties
Session Expiry, Receive Maximum, Maximum Packet Size, Topic Alias Maximum, User Properties, Response Info — an jedem CONNECT / PUBLISH / SUBSCRIBE / DISCONNECT.
Shared Subscriptions
$share/<group>/<topic> verteilt eingehende Nachrichten per Round-Robin auf einen Worker-Pool — horizontale Skalierung kostenlos.
WatchDog-Reconnect
Automatischer Reconnect mit Exponential Back-Off; Subscriptions und gepufferte QoS-1/2-Publikationen werden beim Wiederaufbau ausgespielt.
Schnellstart
Von null zur Publish-/Subscribe-Schleife
Komponente ablegen, zwei Events verdrahten, Active setzen.
Alle vier Broker-Authentifizierungsmuster werden out of the box unterstützt: einfache Benutzername-/Passwort-Anmeldung (im CONNECT-Paket), X.509-Client-Zertifikate (mTLS), JWT (Google Cloud IoT, eigene Broker) und SAS-Tokens (Azure IoT Hub). MQTT-5-Enhanced-Authentication gibt das AUTH-Paket über OnMQTTAuth für SCRAM-artige Challenge-/Response-Flows frei.
Beim Transport kannst du natives MQTT-over-TCP auf den Standard-Ports 1883 (Klartext) oder 8883 (TLS) fahren oder MQTT durch einen WebSocket tunneln (die Eigenschaft Client akzeptiert jeden TsgcWebSocketClient), um strikte HTTP-only-Firewalls und CDN-Edges zu durchqueren. Beide Optionen nutzen dieselbe Komponente und dieselben Events.