Repository navigation
mqtt
Home > MQTT
Important
Em desenvolvimento (2.0). Ainda não está numa versão lançada e pode mudar.
Nível: iniciante
Em uma frase: o pacote MQTT do RAL traz cliente e broker MQTT (3.1.1 e 5.0), cliente e gateway MQTT-SN e uma ponte para o servidor REST, tudo em Pascal, nos mesmos componentes de arrastar e soltar do resto do RAL.
Você vai precisar: RAL 2.0 com o pacote RALModuleMQTTPackage instalado (e o
RALModuleMQTTDsgn para a IDE). Para TLS, a OpenSSL 1.1 ou 3 ao lado do executável
(dependências). Nenhuma outra biblioteca.
| você quer | use |
|---|---|
| pedir algo e receber a resposta daquele pedido | REST (rotas, cliente) |
| receber avisos assim que acontecem, sem perguntar de tempo em tempo | MQTT |
| muitos aparelhos pequenos mandando leituras | MQTT (ou MQTT-SN, se for UDP ou rádio) |
| que a mensagem chegue mesmo com a rede caindo | MQTT com QoS 1 ou 2 |
| as duas coisas | o broker do RAL com a ponte REST |
No MQTT ninguém chama ninguém: quem tem uma notícia publica num tópico
(casa/sala/temperatura), e quem quer saber assina o tópico (ou um filtro como
casa/+/temperatura ou casa/#). O broker fica no meio e entrega.
| componente | paleta | para |
|---|---|---|
TRALMQTTClient |
RAL - Client | conectar a qualquer broker MQTT (o do RAL, Mosquitto, EMQX, HiveMQ, nuvens) |
TRALMQTTSNClient |
RAL - Client | MQTT-SN, para UDP e redes de sensores |
TRALMQTTBroker |
RAL - Server | ser o broker |
TRALMQTTSNGateway |
RAL - Server | receber clientes MQTT-SN no broker do RAL |
TRALMQTTRestModule |
RAL - Modules | publicar e consultar o broker por HTTP |
TRALMQTTBasicAuth, TRALMQTTSCRAMAuth, TRALMQTTNetTokenAuth, TRALMQTTSelfTokenAuth, TRALMQTTSASAuth, TRALMQTTCustomAuth
|
RAL - Client | como o cliente se identifica (segurança) |
TRALMQTTDataSetLink |
RAL - DAO | mostrar as mensagens num grid (pacote opcional RALModuleMQTTDBPackage) |
ações TRALMQTTConnect, TRALMQTTDisconnect, TRALMQTTPublish
|
(ActionList) | botões e menus sem código |
- MQTT 5.0 é o padrão; 3.1.1 por escolha (
ProtocolVersion) ou sozinho, quando o broker não aceita 5.0 (VersionFallback). - TCP (
mqtt://, porta 1883), TLS (mqtts://, 8883), WebSocket (ws://,wss://), e por proxy HTTP ou SOCKS5. - MQTT-SN 1.2 e 2.0 (este ainda é rascunho da OASIS) sobre UDP, com DTLS.
Começar
Servidor
- Rotas e parâmetros
- Ler o pedido e responder
- Resposta em fluxo 🚧
- Plugins 🚧
- Autenticação
- Banco de dados (DBWare)
- Servir site e arquivos
- Swagger e Postman
- Servidor SOAP 🚧
- HTTPS
- Criptografia ponto a ponto
- Segurança para produção
- Colocar no ar
- Desempenho
MQTT 🚧
- O que é e quando usar 🚧
- Cliente MQTT 🚧
- Broker MQTT 🚧
- MQTT-SN 🚧
- Ponte REST 🚧
- Segurança 🚧
- Rede ruim 🚧
Cliente
Motores
Avançado
Ajuda
- Problemas comuns
- Atualizar o Indy
- Várias versões do Delphi
- Vídeos e guias
- Módulos de terceiros
- Licenças
- Contribuir
- Roadmap e changelog
🚧 = em desenvolvimento, pode mudar