Tests de brokers

Tester un broker MQTT depuis Android et iOS

Comment tester un broker MQTT depuis un mobile Android ou iOS : client web en WSS, applis MQTT, Termux, émulateurs et pièges réseau propres aux réseaux mobiles.

Mis à jour · 7 min de lecture

Tester un broker MQTT depuis Android et iOS

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.

  1. Sur le téléphone, ouvrez testmqtt.com/client.
  2. Laissez le protocole sur WSS. Pour votre propre broker, choisissez Custom broker… et saisissez l'hôte broker.connectmq.com, le port 8084, le chemin mqtt et les identifiants de votre utilisateur de test.
  3. Abonnez-vous à un topic unique comme testmqtt/phone-4c21/# et publiez sur testmqtt/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) :

Open this link on the phone
https://testmqtt.com/client?url=wss://broker.connectmq.com:8084/mqtt&topic=testmqtt/phone-4c21/%23

Publiez 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 :

Laptop → broker → phone
mosquitto_pub -h broker.connectmq.com -p 1883 \
  -t testmqtt/phone-4c21/hello -m "from laptop" -q 1

Passez 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 :

FonctionPourquoi c'est utile pour tester
TCP et TLS (8883)Tester le port réellement utilisé par vos appareils
Options de CA / certificat personnalisésCA privées et certificats clients
Utilisateur / mot de passeBrokers authentifiés et vérification des ACL
Choix entre MQTT 3.1.1 / 5Coller au firmware de vos appareils
Abonnements avec wildcardsSurveiller toute l'arborescence d'un appareil
Options retain et QoSReproduire 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 :

Termux on Android
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 : localhost dans l'émulateur désigne l'émulateur lui-même. Utilisez 10.0.2.2 pour atteindre un broker qui tourne sur votre machine de développement.
  • Simulateur iOS : il partage la pile réseau du Mac, donc localhost atteint 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ômeCause probableQue tester
Fonctionne en Wi-Fi, timeout en données mobilesLe réseau restreint les ports 1883/8883Tester WSS sur 443 si votre broker le propose ; voir avec l'opérateur/MDM
La connexion tombe après quelques minutes de silenceDélai d'inactivité du NAT opérateurKeep alive sous ce délai (ex. 30–60 s) ; voir timeouts NAT
Déconnexion à chaque verrouillage de l'écranLe système suspend l'applicationNormal ; prévoir reconnexion + sessions persistantes
Rafale de reconnexions au changement de réseauL'adresse IP change lors du handoverReconnexion propre avec backoff, même client ID
Connection refused uniquement depuis le téléphoneBroker 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 ordinateurIntermédiaire manquant ou CA privéeServir 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

  1. Navigateur du téléphone en Wi-Fi : connexion WSS, abonnement, publication, réception.
  2. Le même test en données mobiles.
  3. Publier depuis le portable, recevoir sur le téléphone (et inversement).
  4. Appli native ou Termux : recommencer en TCP 1883 et TLS 8883 avec vos vrais identifiants.
  5. Laisser un abonnement inactif pendant dix minutes ; vérifier qu'il survit.
  6. 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.