Pour tester un broker MQTT depuis un téléphone, la voie la plus rapide ne demande aucune application : ouvrez le client MQTT en ligne dans Chrome sur Android ou Safari sur iOS, connectez-vous en WebSocket sécurisé (wss), abonnez-vous et publiez. Pour aller plus loin — TCP brut sur 1883, TLS sur 8883, comportement en arrière-plan —, utilisez une application MQTT native ou un terminal sur l'appareil. Ce guide couvre chaque approche et les pièges réseau qui n'apparaissent que sur mobile.
Pourquoi tester depuis le téléphone ?
Votre portable sur le Wi-Fi du bureau n'est pas là où se trouvent vos utilisateurs. Un test mobile répond à des questions qu'un test sur poste de travail ne peut pas trancher :
- Le broker accepte-t-il les connexions venant des réseaux mobiles, et pas seulement de l'IP de votre bureau ?
- Le NAT de l'opérateur et les délais d'inactivité coupent-ils une connexion silencieuse au bout de quelques minutes ?
- La connexion de votre application survit-elle au verrouillage de l'écran, au changement d'application et au changement de réseau (Wi-Fi → 4G/5G) ?
- Les certificats sont-ils validés par le magasin de confiance du téléphone, qui peut différer de celui de votre ordinateur ?
Option 1 — Le navigateur, en WSS
Les navigateurs mobiles prennent en charge les WebSockets : MQTT sur WebSockets fonctionne donc exactement comme sur ordinateur.
- Sur le téléphone, ouvrez testmqtt.com/client.
- Laissez le protocole sur WSS. Pour votre propre broker, choisissez Custom broker… et saisissez l'hôte
broker.connectmq.com, le port8084, le cheminmqttet les identifiants de votre utilisateur de test. - Abonnez-vous à un topic unique comme
testmqtt/phone-4c21/#et publiez surtestmqtt/phone-4c21/hello.
Pour éviter de taper sur un petit clavier, préparez le lien sur votre portable et ouvrez-le sur le téléphone (envoyez-le-vous ou transformez-le en QR code) :
https://testmqtt.com/client?url=wss://broker.connectmq.com:8084/mqtt&topic=testmqtt/phone-4c21/%23Publiez ensuite depuis le portable et regardez le téléphone recevoir le message — cela valide tout le chemin, d'un client de bureau jusqu'à un réseau mobile en passant par le broker :
mosquitto_pub -h broker.connectmq.com -p 1883 \
-t testmqtt/phone-4c21/hello -m "from laptop" -q 1Passez le téléphone du Wi-Fi aux données mobiles et recommencez. Si cela fonctionne sur l'un et pas sur l'autre, le problème vient du réseau, pas du broker. La version pas à pas pour ordinateur se trouve dans tester un broker MQTT depuis votre navigateur.
Option 2 — Les applications MQTT natives
Les applications natives ouvrent de vrais sockets TCP et TLS : elles testent donc les mêmes ports que vos appareils. Les deux stores proposent plusieurs clients MQTT généralistes et applications de dashboard — sur Android, des applis comme MyMQTT, MQTT Dash et IoT MQTT Panel ; sur iOS, des applis comme MQTTool et IoT MQTT Panel. Disponibilité et fonctions évoluent : vérifiez la fiche du store et privilégiez les applis qui permettent :
| Fonction | Pourquoi c'est utile pour tester |
|---|---|
| TCP et TLS (8883) | Tester le port réellement utilisé par vos appareils |
| Options de CA / certificat personnalisés | CA privées et certificats clients |
| Utilisateur / mot de passe | Brokers authentifiés et vérification des ACL |
| Choix entre MQTT 3.1.1 / 5 | Coller au firmware de vos appareils |
| Abonnements avec wildcards | Surveiller toute l'arborescence d'un appareil |
| Options retain et QoS | Reproduire le comportement réel des appareils |
Utilisez un utilisateur de test dédié, avec des ACL limitées aux topics de test — les applis mobiles stockent généralement les identifiants sur l'appareil.
Option 3 — Un terminal sur le téléphone
Sur Android, Termux fournit un environnement Linux avec les clients en ligne de commande de 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"Les mêmes commandes fonctionnent avec -p 8883 et --capath ou --cafile pour TLS (en pointant vers un bundle de CA présent sur l'appareil). Sur iOS, les applis de terminal sont plus limitées ; pour scripter sur iPhone, une appli native ou le navigateur est généralement plus simple. Une fois la CLI fonctionnelle, tout ce qui figure dans exemples mosquitto_pub et mosquitto_sub s'applique aussi sur le téléphone.
Tester votre propre application : émulateurs et simulateurs
Quand l'application que vous développez ne se connecte pas, déterminez si c'est le code ou le réseau :
- Émulateur Android :
localhostdans l'émulateur désigne l'émulateur lui-même. Utilisez10.0.2.2pour atteindre un broker qui tourne sur votre machine de développement. - Simulateur iOS : il partage la pile réseau du Mac, donc
localhostatteint un broker sur le Mac. Un iPhone physique, non — il a besoin de l'IP locale du Mac. - Appareils physiques : le broker doit écouter sur l'interface réseau locale, pas seulement sur
127.0.0.1(Mosquitto 2.x sans listener configuré n'accepte que les connexions locales), et le pare-feu de l'hôte doit autoriser le port.
Les règles de la plateforme peuvent aussi bloquer les connexions en clair dans votre application. La configuration de sécurité réseau d'Android bloque par défaut le trafic cleartext pour les piles basées sur HTTP, ce qui concerne ws:// ; App Transport Security sur iOS s'applique aux connexions basées sur URLSession, WebSockets compris. Utilisez wss:// ou TLS (8883) plutôt que d'ajouter des exceptions. La configuration propre à chaque bibliothèque se trouve dans MQTT sur Android avec Kotlin et MQTT sur iOS avec Swift.
Les pièges des réseaux mobiles
| Symptôme | Cause probable | Que tester |
|---|---|---|
| Fonctionne en Wi-Fi, timeout en données mobiles | Le réseau restreint les ports 1883/8883 | Tester WSS sur 443 si votre broker le propose ; voir avec l'opérateur/MDM |
| La connexion tombe après quelques minutes de silence | Délai d'inactivité du NAT opérateur | Keep alive sous ce délai (ex. 30–60 s) ; voir timeouts NAT |
| Déconnexion à chaque verrouillage de l'écran | Le système suspend l'application | Normal ; prévoir reconnexion + sessions persistantes |
| Rafale de reconnexions au changement de réseau | L'adresse IP change lors du handover | Reconnexion propre avec backoff, même client ID |
Connection refused uniquement depuis le téléphone | Broker lié à localhost ou règle de pare-feu | Écouter sur 0.0.0.0, ouvrir le port, tester avec nc depuis une autre machine |
| Erreur de certificat sur le téléphone, OK sur ordinateur | Intermédiaire manquant ou CA privée | Servir la chaîne complète ; installer la CA sur les appareils de test |
Pour des tests réalistes de réseau instable en laboratoire, voir tester MQTT dans des conditions de réseau cellulaire.
Un plan de test mobile en cinq minutes
- Navigateur du téléphone en Wi-Fi : connexion WSS, abonnement, publication, réception.
- Le même test en données mobiles.
- Publier depuis le portable, recevoir sur le téléphone (et inversement).
- Appli native ou Termux : recommencer en TCP 1883 et TLS 8883 avec vos vrais identifiants.
- Laisser un abonnement inactif pendant dix minutes ; vérifier qu'il survit.
- Verrouiller l'écran, changer de réseau, déverrouiller : confirmer que votre appli se reconnecte et se réabonne.
Ouvrir le client sur votre téléphone
Tester depuis un téléphone prend quelques minutes et révèle des problèmes qu'aucun test sur ordinateur ne montrera : ports bloqués en données mobiles, timeouts NAT, applications endormies et chaînes de certificats qui n'échouent que dans le magasin de confiance de l'appareil. Commencez dans le navigateur mobile en WSS, puis passez à un client natif pour les ports et le comportement dont votre application dépend.
Questions fréquentes
Quel est le moyen le plus rapide de tester un broker MQTT depuis un téléphone ?
Ouvrez un client MQTT en ligne comme testmqtt.com/client dans le navigateur du téléphone et connectez-vous en WebSocket sécurisé (wss, souvent sur le port 8084 ou 443). Cela fonctionne de la même façon dans Chrome sur Android et Safari sur iOS, sans installer d'application.
Pourquoi mon téléphone n'atteint-il pas le broker MQTT qui tourne sur mon ordinateur portable ?
localhost sur le téléphone désigne le téléphone lui-même. Utilisez l'adresse IP locale du portable, vérifiez que les deux sont sur le même réseau, que le broker écoute sur toutes les interfaces et pas seulement sur 127.0.0.1, et que le pare-feu du portable autorise le port.
Pourquoi MQTT fonctionne-t-il en Wi-Fi mais pas en données mobiles ?
Certains réseaux mobiles et réseaux invités restreignent les ports non web comme 1883 et 8883, et le NAT de l'opérateur peut couper rapidement les connexions inactives. Testez le port 443 ou les WebSockets sur 443 si disponibles, et utilisez un keep alive plus court que le délai d'inactivité du réseau.

