Cliente MQTT para Delphi — Conecta a cualquier broker MQTT 3.1 / 5.0
Componente cliente MQTT 3.1.1 y MQTT 5.0 nativo para Delphi y C++Builder. Publicar, suscribir, mensajes retained, last will, QoS 0/1/2, TLS, shared subscriptions y toda la superficie de propiedades MQTT 5 — verificado contra HiveMQ, Mosquitto, EMQX, AWS IoT Core y Azure IoT Hub.
MQTT es el protocolo de mensajería de facto para IoT, telemetría, push móvil y vehículos conectados. Tráelo a tu código Delphi sin escribir un solo byte de framing.
Un cliente MQTT para Delphi permite a tu aplicación VCL o FMX hablar el protocolo OASIS MQTT — el protocolo ligero de publish/subscribe diseñado para dispositivos restringidos y redes de bajo ancho de banda y alta latencia. Con sgcWebSockets obtienes la superficie completa del cliente en un único componente no visual, TsgcWSPClient_MQTT, que funciona desde Delphi 7 hasta Delphi 13 y en cada plataforma destino de Embarcadero (Win32, Win64, Linux64, macOS, iOS, Android).
El componente implementa las dos versiones principales de MQTT en la misma ruta de código: el ampliamente desplegado MQTT 3.1.1 (estándar OASIS, usado por prácticamente cada broker IoT desde 2014) y el moderno MQTT 5.0 (con alias de topic, expiración de sesión, propiedades de usuario, autenticación mejorada, request/response y shared subscriptions). Una sola propiedad — Version — alterna entre ellas.
Funciona con todos los brokers MQTT contra los que probamos
Un cliente conforme a la especificación es, en principio, agnóstico al broker — pero los brokers reales tienen sus rarezas. Probamos cada release contra los brokers que nuestros clientes realmente despliegan.
HiveMQ y HiveMQ Cloud
Superficie completa de propiedades MQTT 5, shared subscriptions, autenticación mejorada y HiveMQ Cluster. El nivel Cloud gratuito es la forma más fácil de probar el componente de extremo a extremo.
Eclipse Mosquitto
El broker open-source de referencia. Ejecútalo localmente con docker run -p 1883:1883 eclipse-mosquitto y tienes un destino de desarrollo en 30 segundos.
EMQX
Broker Erlang masivamente escalable con motor de reglas, puentes Kafka y shared subscriptions. Listo para producción con millones de conexiones.
AWS IoT Core
Certificados cliente X.509, MQTT negociado por ALPN en 443, WebSocket firmado con SigV4 y las cuotas del broker AWS IoT. Consulta la página dedicada de AWS IoT Core.
Azure IoT Hub
Tokens SAS de dispositivo, topics twin / direct-method, aprovisionamiento DPS. Consulta la página dedicada de Azure IoT Hub.
Google Cloud IoT
Autenticación de dispositivo basada en JWT en el puerto 8883. El componente genera y rota el JWT automáticamente.
RabbitMQ Web-MQTT
El plugin Web-MQTT de RabbitMQ en el puerto 15675 — mismo broker para navegadores y clientes Delphi sobre un único puerto TLS.
VerneMQ, ActiveMQ, Artemis
Todos pasan la suite de tests de integración. Coexistencia multi-protocolo con AMQP / STOMP / JMS gratis.
Funciones
QoS, retained, will, TLS — toda la superficie
Cada función MQTT a nivel de wire se expone como propiedad, método o evento — nada oculto.
Quality of Service 0/1/2
Fire-and-forget (QoS 0), at-least-once con PUBACK (QoS 1) y exactly-once con el handshake de cuatro vías PUBREC → PUBREL → PUBCOMP (QoS 2). Escoge por cada llamada a Publish().
Mensajes retained
Marca una publicación como retained para que el broker entregue el último valor conocido a cualquier suscriptor futuro — el patrón estándar para topics de “estado actual”.
Last Will & Testament
LastWillTestament registra un topic + payload que el broker publica si el cliente cae sin desconectarse limpiamente — la señal canónica de dispositivo offline.
Sesiones clean / persistentes
Las suscripciones y los mensajes QoS 1/2 no entregados persisten entre reconexiones cuando CleanSession es false — salva la conectividad intermitente sin perder datos.
TLS y mTLS
MQTTS en 8883 con OpenSSL o SChannel. Carga certificados desde disco, el almacén de certificados de Windows, bundles PKCS#12 o tokens hardware.
Transporte WebSocket
Conecta el componente a un TsgcWebSocketClient para ejecutar MQTT sobre WSS en el puerto 443 — atraviesa cualquier balanceador HTTP o proxy corporativo.
Propiedades MQTT 5
Session expiry, receive maximum, maximum packet size, topic alias maximum, propiedades de usuario, response info — en cada CONNECT / PUBLISH / SUBSCRIBE / DISCONNECT.
Shared subscriptions
$share/<group>/<topic> reparte los mensajes entrantes round-robin entre un pool de workers — escalado horizontal gratis.
Reconexión WatchDog
Reconexión automática con back-off exponencial; las suscripciones y publicaciones QoS 1/2 en cola se reproducen al reanudar.
Guía Rápida
De cero a un bucle publish/subscribe
Arrastra el componente, conecta dos eventos, activa Active.
Los cuatro patrones de autenticación contra broker están soportados de fábrica: usuario/contraseña sencillos (enviados dentro del paquete CONNECT), certificados cliente X.509 (mTLS), JWT (Google Cloud IoT, brokers personalizados) y tokens SAS (Azure IoT Hub). La autenticación mejorada de MQTT 5 expone el paquete AUTH vía OnMQTTAuth para flujos challenge/response estilo SCRAM.
Para el transporte, puedes ejecutar MQTT-sobre-TCP nativo en los puertos estándar 1883 (claro) o 8883 (TLS), o tunelizar MQTT a través de un WebSocket (la propiedad Client acepta cualquier TsgcWebSocketClient) para atravesar firewalls estrictos sólo-HTTP y edges CDN. Ambas opciones usan el mismo componente y los mismos eventos.