Delphi MQTT-client — Verbind met elke MQTT 3.1 / 5.0-broker
Een native MQTT 3.1.1- en MQTT 5.0-clientcomponent voor Delphi en C++Builder. Publish, subscribe, retained messages, last will, QoS 0/1/2, TLS, shared subscriptions en het volledige MQTT 5-property-oppervlak — geverifieerd tegen HiveMQ, Mosquitto, EMQX, AWS IoT Core en Azure IoT Hub.
MQTT is het de-facto messaging-protocol voor IoT, telemetrie, mobile push en connected vehicles. Breng het naar je Delphi-codebase zonder een enkele byte framing te schrijven.
Een Delphi MQTT-client laat je VCL- of FMX-applicatie het OASIS MQTT-protocol spreken — het lichtgewicht publish/subscribe-protocol ontworpen voor beperkte apparaten en low-bandwidth, high-latency-netwerken. Met sgcWebSockets krijg je het complete client-oppervlak als een enkel niet-visueel component, TsgcWSPClient_MQTT, dat draait op Delphi 7 t/m Delphi 13 en op elk Embarcadero-doelplatform (Win32, Win64, Linux64, macOS, iOS, Android).
Het component implementeert beide grote MQTT-versies in hetzelfde code-pad: het al lang ingezette MQTT 3.1.1 (OASIS-standaard, gebruikt door vrijwel elke IoT-broker sinds 2014) en het moderne MQTT 5.0 (met topic-aliases, session expiry, user properties, enhanced authentication, request/response en shared subscriptions). Een enkele property — Version — schakelt tussen beide.
Componentklasse
TsgcWSPClient_MQTT
Transporten
Native TCP (1883 / 8883), WebSocket (80 / 443), TLS via OpenSSL of SChannel
Versies
MQTT 3.1.1 & MQTT 5.0
Platforms
Windows, macOS, Linux, iOS, Android, .NET
Brokers
Werkt met elke MQTT-broker waar we tegen testen
Een spec-conforme client is in principe broker-agnostisch — maar echte brokers hebben eigenaardigheden. We testen elke release tegen de brokers die onze klanten daadwerkelijk inzetten.
HiveMQ & HiveMQ Cloud
Volledig MQTT 5-property-oppervlak, shared subscriptions, enhanced auth en HiveMQ Cluster. De gratis Cloud-tier is de eenvoudigste manier om de component end-to-end te proberen.
Eclipse Mosquitto
De referentie-open-source-broker. Draai hem lokaal met docker run -p 1883:1883 eclipse-mosquitto en je hebt in 30 seconden een development-doel.
EMQX
Massaal schaalbare Erlang-broker met rule engine, Kafka-bridges en shared subscriptions. Productieklaar bij miljoenen verbindingen.
AWS IoT Core
X.509-client-certificaten, ALPN-onderhandelde MQTT op 443, SigV4-ondertekende WebSocket en de AWS IoT broker-quota. Zie de speciale AWS IoT Core-pagina.
JWT-gebaseerde device-auth op poort 8883. Het component genereert en roteert de JWT automatisch.
RabbitMQ Web-MQTT
De RabbitMQ Web-MQTT-plugin op poort 15675 — zelfde broker voor browsers en Delphi-clients over een enkele TLS-poort.
VerneMQ, ActiveMQ, Artemis
Allemaal slagen voor de integratie-test-suite. Multi-protocol-coexistentie met AMQP / STOMP / JMS gratis.
Features
QoS, retained, will, TLS — het volledige oppervlak
Elke wire-niveau MQTT-feature is blootgesteld als property, methode of event — niets begraven.
Quality of Service 0/1/2
Fire-and-forget (QoS 0), at-least-once met PUBACK (QoS 1) en exactly-once met de four-way handshake PUBREC → PUBREL → PUBCOMP (QoS 2). Kies per Publish()-aanroep.
Retained-messages
Markeer een publicatie als retained zodat de broker de laatst bekende waarde levert aan elke toekomstige subscriber — het standaardpatroon voor “current state”-topics.
Last Will & Testament
LastWillTestament registreert een topic + payload die de broker publiceert als de client ungracefully wegvalt — het canonieke device-offline-signaal.
Clean / persistente sessies
Subscriptions en niet-bezorgde QoS 1/2-berichten persisteren over reconnects wanneer CleanSession false is — overbrug intermitterende connectiviteit zonder data te verliezen.
TLS & mTLS
MQTTS op 8883 met OpenSSL of SChannel. Laad certificaten van disk, de Windows-certificaatopslag, PKCS#12-bundels of hardware-tokens.
WebSocket-transport
Plug het component in op een TsgcWebSocketClient om MQTT over WSS op poort 443 te draaien — door elke HTTP-bewuste load balancer of corporate proxy.
MQTT 5-properties
Session expiry, receive maximum, maximum packet size, topic alias maximum, user properties, response info — op elke CONNECT / PUBLISH / SUBSCRIBE / DISCONNECT.
Shared subscriptions
$share/<group>/<topic> round-robint binnenkomende berichten over een pool van workers — horizontale schaling gratis.
WatchDog-reconnect
Automatische reconnect met exponentiele backoff; subscriptions en wachtende QoS 1/2-publicaties worden bij hervatten opnieuw afgespeeld.
Snelstart
Van nul naar een publish/subscribe-loop
Plaats het component, verbind twee events, zet Active.
Alle vier broker-authenticatie-patronen worden out-of-the-box ondersteund: simpele username/password (verstuurd in het CONNECT-pakket), X.509-client-certificaten (mTLS), JWT (Google Cloud IoT, custom brokers) en SAS-tokens (Azure IoT Hub). MQTT 5 enhanced authentication stelt het AUTH-pakket bloot via OnMQTTAuth voor SCRAM-stijl challenge/response-flows.
Voor transport kun je native MQTT-over-TCP draaien op de standaard 1883 (clear) of 8883 (TLS) poorten, of MQTT door een WebSocket tunnelen (de Client-property accepteert elke TsgcWebSocketClient) om strikte HTTP-only-firewalls en CDN-edges te doorkruisen. Beide opties gebruiken hetzelfde component en dezelfde events.