Cliente MQTT Delphi — conecte a qualquer broker MQTT 3.1 / 5.0
Um componente cliente MQTT 3.1.1 e MQTT 5.0 nativo para Delphi e C++Builder. Publique, assine, mensagens retidas, last will, QoS 0/1/2, TLS, assinaturas compartilhadas e a superfície completa de propriedades do MQTT 5 — verificado contra HiveMQ, Mosquitto, EMQX, AWS IoT Core e Azure IoT Hub.
MQTT é o protocolo de mensageria de fato para IoT, telemetria, push móvel e veículos conectados. Traga para sua base Delphi sem escrever um único byte de framing.
Um cliente MQTT Delphi deixa sua aplicação VCL ou FMX falar o protocolo OASIS MQTT — o protocolo publish/subscribe leve projetado para dispositivos restritos e redes de baixa largura de banda e alta latência. Com o sgcWebSockets, você ganha a superfície completa do cliente como um único componente não visual, TsgcWSPClient_MQTT, que roda do Delphi 7 ao Delphi 13 e em todas as plataformas alvo da Embarcadero (Win32, Win64, Linux64, macOS, iOS, Android).
O componente implementa ambas as versões principais do MQTT no mesmo caminho de código: o MQTT 3.1.1, há muito implantado (padrão OASIS, usado por praticamente todo broker IoT desde 2014) e o moderno MQTT 5.0 (com topic aliases, expiração de sessão, user properties, autenticação aprimorada, request/response e shared subscriptions). Uma única propriedade — Version — alterna entre eles.
Classe de componente
TsgcWSPClient_MQTT
Transportes
TCP nativo (1883 / 8883), WebSocket (80 / 443), TLS via OpenSSL ou SChannel
Versões
MQTT 3.1.1 & MQTT 5.0
Plataformas
Windows, macOS, Linux, iOS, Android, .NET
Brokers
Funciona com todo broker MQTT que testamos
Um cliente em conformidade com a spec é, em princípio, broker-agnostic — mas brokers do mundo real têm peculiaridades. Testamos cada release contra os brokers que nossos clientes de fato implantam.
HiveMQ & HiveMQ Cloud
Superfície completa de properties MQTT 5, shared subscriptions, enhanced auth e HiveMQ Cluster. O tier Cloud gratuito é a forma mais fácil de testar o componente de ponta a ponta.
Eclipse Mosquitto
O broker open-source de referência. Rode localmente com docker run -p 1883:1883 eclipse-mosquitto e você tem um alvo de desenvolvimento em 30 segundos.
EMQX
Broker em Erlang massivamente escalável, com rule engine, bridges Kafka e shared subscriptions. Pronto para produção em milhões de conexões.
AWS IoT Core
Certificados de cliente X.509, MQTT negociado por ALPN na 443, WebSocket assinado em SigV4 e as cotas do broker AWS IoT. Veja a página dedicada do AWS IoT Core.
Azure IoT Hub
Tokens SAS de dispositivo, tópicos de twin / direct-method, provisionamento via DPS. Veja a página dedicada do Azure IoT Hub.
Google Cloud IoT
Auth de dispositivo baseada em JWT na porta 8883. O componente gera e rotaciona o JWT automaticamente.
RabbitMQ Web-MQTT
O plugin Web-MQTT do RabbitMQ na porta 15675 — mesmo broker para navegadores e clientes Delphi sobre uma única porta TLS.
VerneMQ, ActiveMQ, Artemis
Todos passam na suite de testes de integração. Coexistência multi-protocolo com AMQP / STOMP / JMS de graça.
Recursos
QoS, retained, will, TLS — a superfície completa
Todo recurso MQTT em nível de fio é exposto como propriedade, método ou evento — nada escondido.
Quality of Service 0/1/2
Fire-and-forget (QoS 0), at-least-once com PUBACK (QoS 1) e exactly-once com o handshake de quatro vias PUBREC → PUBREL → PUBCOMP (QoS 2). Escolha por chamada de Publish().
Mensagens retidas
Marque uma publicação como retained para que o broker entregue o último valor conhecido a qualquer assinante futuro — o padrão para tópicos de “estado atual”.
Last Will & Testament
LastWillTestament registra um tópico + payload que o broker publica se o cliente cair sem grace — o sinal canônico de dispositivo offline.
Sessões clean / persistentes
Assinaturas e mensagens QoS 1/2 não entregues persistem entre reconexões quando CleanSession é false — supere conectividade intermitente sem perder dados.
TLS & mTLS
MQTTS na 8883 com OpenSSL ou SChannel. Carregue certificados do disco, do Windows certificate store, de bundles PKCS#12 ou de tokens em hardware.
Transporte WebSocket
Pluge o componente em um TsgcWebSocketClient para rodar MQTT sobre WSS na porta 443 — passe por qualquer load balancer HTTP-aware ou proxy corporativo.
Properties MQTT 5
Session expiry, receive maximum, maximum packet size, topic alias maximum, user properties, response info — em cada CONNECT / PUBLISH / SUBSCRIBE / DISCONNECT.
Shared subscriptions
$share/<group>/<topic> faz round-robin das mensagens entrantes em um pool de workers — escalabilidade horizontal de graça.
Reconexão via WatchDog
Reconexão automática com backoff exponencial; assinaturas e publicações QoS 1/2 enfileiradas são repetidas no retorno.
Início Rápido
Do zero a um loop publish/subscribe
Arraste o componente, conecte dois eventos, defina Active.
Todos os quatro padrões de autenticação de broker são suportados de fábrica: usuário/senha simples (enviado dentro do pacote CONNECT), certificados de cliente X.509 (mTLS), JWT (Google Cloud IoT, brokers customizados) e tokens SAS (Azure IoT Hub). A autenticação aprimorada do MQTT 5 expõe o pacote AUTH via OnMQTTAuth para fluxos de challenge/response no estilo SCRAM.
Para transporte, você pode rodar MQTT-sobre-TCP nativo nas portas padrão 1883 (clara) ou 8883 (TLS), ou tunelar MQTT por um WebSocket (a propriedade Client aceita qualquer TsgcWebSocketClient) para atravessar firewalls estritos só-HTTP e edges de CDN. Ambas as opções usam o mesmo componente e os mesmos eventos.