Para testar um broker MQTT pelo celular, o caminho mais rápido não precisa de app nenhum: abra o cliente MQTT online no Chrome do Android ou no Safari do iOS, conecte via WebSocket seguro (wss), assine e publique. Para algo mais profundo — TCP puro na 1883, TLS na 8883, comportamento em segundo plano — use um app MQTT nativo ou um terminal no aparelho. Este guia cobre cada abordagem e as armadilhas de rede que só aparecem no celular.
Por que testar pelo celular?
Seu notebook no Wi-Fi do escritório não está onde seus usuários estão. Um teste pelo celular responde perguntas que um teste no desktop não consegue:
- O broker aceita conexões de redes móveis, e não só do IP do seu escritório?
- O NAT da operadora e os timeouts de inatividade derrubam uma conexão silenciosa depois de alguns minutos?
- A conexão do seu app sobrevive ao bloqueio de tela, à troca de app e à troca de rede (Wi-Fi → 4G/5G)?
- Os certificados são validados no repositório de confiança do celular, que pode ser diferente do seu desktop?
Opção 1 — O navegador, via WSS
Navegadores móveis suportam WebSockets, então MQTT sobre WebSockets funciona exatamente como no desktop.
- No celular, abra testmqtt.com/client.
- Mantenha o protocolo em WSS. Para o seu próprio broker, escolha Custom broker… e informe o host
broker.connectmq.com, a porta8084, o caminhomqtte as credenciais do seu usuário de teste. - Assine um topic único como
testmqtt/phone-4c21/#e publique emtestmqtt/phone-4c21/hello.
Para não digitar num teclado pequeno, monte o link no notebook e abra no celular (mande para você mesmo ou gere um QR code):
https://testmqtt.com/client?url=wss://broker.connectmq.com:8084/mqtt&topic=testmqtt/phone-4c21/%23Depois publique a partir do notebook e veja o celular receber — isso prova o caminho completo de um cliente desktop, passando pelo broker, até uma rede móvel:
mosquitto_pub -h broker.connectmq.com -p 1883 \
-t testmqtt/phone-4c21/hello -m "from laptop" -q 1Troque o celular do Wi-Fi para os dados móveis e repita. Se funciona em um e não no outro, o problema é de rede, não do broker. A versão passo a passo para desktop está em teste um broker MQTT pelo navegador.
Opção 2 — Apps MQTT nativos
Apps nativos abrem sockets TCP e TLS de verdade, então testam as mesmas portas que seus dispositivos usam. As duas lojas oferecem vários clientes MQTT de uso geral e apps de dashboard — no Android, apps como MyMQTT, MQTT Dash e IoT MQTT Panel; no iOS, apps como MQTTool e IoT MQTT Panel. Disponibilidade e recursos mudam, então confira a página na loja e prefira apps que permitam:
| Recurso | Por que importa no teste |
|---|---|
| TCP e TLS (8883) | Testar a porta que seus dispositivos realmente usam |
| Opções de CA / certificado próprio | CAs privadas e certificados de cliente |
| Usuário / senha | Brokers autenticados e verificação de ACLs |
| Escolha entre MQTT 3.1.1 / 5 | Bater com o firmware dos seus dispositivos |
| Assinatura com wildcards | Acompanhar toda a subárvore de um dispositivo |
| Opções de retain e QoS | Reproduzir o comportamento real dos dispositivos |
Use um usuário de teste dedicado com ACLs limitadas a topics de teste — apps móveis normalmente guardam as credenciais no aparelho.
Opção 3 — Um terminal no celular
No Android, o Termux oferece um ambiente Linux com os clientes de linha de comando do Mosquitto:
pkg install mosquitto
mosquitto_sub -h broker.connectmq.com -p 1883 -t 'testmqtt/phone-4c21/#' -v &
mosquitto_pub -h broker.connectmq.com -p 1883 -t testmqtt/phone-4c21/hello -m "from termux"Os mesmos comandos funcionam com -p 8883 e --capath ou --cafile para TLS (apontando para um bundle de CAs que você tenha no aparelho). No iOS, apps de terminal são mais limitados; para scripts no iPhone, um app nativo ou o navegador costuma ser mais simples. Quando a CLI funciona, tudo de exemplos de mosquitto_pub e mosquitto_sub vale também no celular.
Testando o seu próprio app: emuladores e simuladores
Quando o app que você está desenvolvendo não conecta, descubra se é o código ou a rede:
- Emulador Android:
localhostdentro do emulador é o próprio emulador. Use10.0.2.2para alcançar um broker rodando na sua máquina de desenvolvimento. - Simulador iOS: compartilha a pilha de rede do Mac, então
localhostalcança um broker no Mac. Um iPhone físico não — ele precisa do IP de rede local do Mac. - Aparelhos físicos: o broker precisa escutar na interface de rede local, não só em
127.0.0.1(o Mosquitto 2.x sem listener configurado aceita só conexões locais), e o firewall do host precisa liberar a porta.
Regras da plataforma também podem bloquear conexões em texto puro no seu app. A configuração de segurança de rede do Android bloqueia por padrão tráfego cleartext nas pilhas baseadas em HTTP, o que afeta ws://; o App Transport Security do iOS vale para conexões baseadas em URLSession, incluindo WebSockets. Use wss:// ou TLS (8883) em vez de adicionar exceções. A configuração de cada biblioteca está em MQTT no Android com Kotlin e MQTT no iOS com Swift.
Armadilhas das redes móveis
| Sintoma | Causa provável | O que tentar |
|---|---|---|
| Funciona no Wi-Fi, timeout nos dados móveis | A rede restringe as portas 1883/8883 | Teste WSS na 443 se o seu broker oferecer; verifique com a operadora/MDM |
| A conexão cai após alguns minutos em silêncio | Timeout de inatividade do NAT da operadora | Keep alive abaixo do timeout (ex.: 30–60 s); veja timeouts de NAT |
| Desconecta sempre que a tela bloqueia | O sistema suspende o app | Esperado; projete para reconexão + sessões persistentes |
| Rajada de reconexões ao trocar de rede | O IP muda no handover | Reconexão limpa com backoff, mesmo client ID |
Connection refused só a partir do celular | Broker preso ao localhost ou regra de firewall | Escute em 0.0.0.0, libere a porta, teste com nc de outra máquina |
| Erro de certificado no celular, ok no desktop | Falta o intermediário ou a CA é privada | Sirva a cadeia completa; instale a CA nos aparelhos de teste |
Para testes realistas de rede instável no laboratório, veja testar MQTT em condições de rede celular.
Um plano de teste móvel de cinco minutos
- Navegador do celular no Wi-Fi: conecte via WSS, assine, publique, receba.
- O mesmo teste nos dados móveis.
- Publique do notebook e receba no celular (e vice-versa).
- App nativo ou Termux: repita em TCP 1883 e TLS 8883 com as suas credenciais reais.
- Deixe uma assinatura ociosa por dez minutos; veja se ela sobrevive.
- Bloqueie a tela, troque de rede, desbloqueie: confirme que seu app reconecta e assina de novo.
Testar pelo celular leva minutos e pega problemas que nenhum teste de desktop pega: portas bloqueadas nos dados móveis, timeouts de NAT, apps dormindo e cadeias de certificado que só falham no repositório de confiança do aparelho. Comece no navegador móvel via WSS e depois passe para um cliente nativo para as portas e o comportamento de que o seu app depende.
Perguntas frequentes
Qual é a forma mais rápida de testar um broker MQTT pelo celular?
Abra um cliente MQTT online como o testmqtt.com/client no navegador do celular e conecte via WebSocket seguro (wss, muitas vezes na porta 8084 ou 443). Funciona igual no Chrome do Android e no Safari do iOS, sem instalar nenhum app.
Por que meu celular não alcança o broker MQTT que roda no meu notebook?
localhost no celular é o próprio celular. Use o IP de rede local do notebook, garanta que os dois estão na mesma rede, que o broker escuta em todas as interfaces e não só em 127.0.0.1, e que o firewall do notebook libera a porta.
Por que o MQTT funciona no Wi-Fi, mas não nos dados móveis?
Algumas redes móveis e de visitantes restringem portas que não são web, como 1883 e 8883, e o NAT da operadora pode derrubar conexões ociosas rapidamente. Teste a porta 443 ou WebSockets na 443, se disponível, e use um keep alive menor que o timeout de inatividade da rede.

