Une application desktop MQTT Explorer montre ce qu'un terminal ne peut pas montrer : toute l'arborescence des topics d'un coup, les branches les plus actives, la valeur retained de chacune et l'évolution d'un payload dans le temps. Ce guide compare les principaux explorateurs desktop, explique les fonctionnalités qui comptent vraiment pour déboguer un système réel, et vous accompagne dans la connexion de l'un d'eux au serveur MQTT public gratuit broker.connectmq.com avec une arborescence de topics préremplie pour que vous puissiez les évaluer vous-même.
Pourquoi utiliser un explorateur desktop plutôt que la CLI
Les outils en ligne de commande sont parfaits pour les scripts et les vérifications rapides, et nous les comparons dans les outils CLI MQTT. Mais ils présentent les messages sous forme de flux. Quand un système compte des centaines de topics, un flux est difficile à analyser. Un explorateur desktop transforme ce flux en structure :
- Un arbre, pas un journal. Vous voyez
factory1/line1/cnc1/telemetrycomme une branche avec ses voisines, si bien que les erreurs de nommage commeLine1au lieu deline1sautent aux yeux. - La dernière valeur de chaque topic. Cliquer sur un nœud affiche sa valeur actuelle (souvent retained) sans attendre.
- Historique et différences. De nombreux explorateurs conservent les messages récents de chaque topic : vous voyez ce qui a changé entre deux payloads.
- Publication sécurisée. Les payloads enregistrés, le formatage JSON et une case retain bien visible réduisent le risque de publier quelque chose d'erroné en production.
- Connexions multiples. Passez d'un broker local à un broker de préproduction puis à la production sans ressaisir les identifiants.
Ce qu'il faut évaluer dans une application desktop MQTT Explorer
Utilisez cette check-list pour tester n'importe quel explorateur :
- Support du protocole : MQTT 3.1.1 et 5.0, et visibilité des propriétés MQTT 5 comme les user properties, le content type et l'expiration des messages.
- Options de transport : TCP, TLS, WebSocket et WebSocket sécurisé, avec un champ pour le chemin WebSocket (par exemple
/mqtt). - Gestion de TLS : utilise le trust store du système ou permet d'ajouter un fichier CA ; message d'erreur clair en cas d'échec du certificat.
- Performance de l'arborescence : reste réactive lorsque vous vous abonnez à
#sur un broker chargé. - Rendu des payloads : JSON mis en forme, vue hexadécimale pour le binaire et, idéalement, décodage de formats comme Sparkplug B.
- Gestion des retained messages : voir quels topics sont retained et les supprimer en publiant un payload retained vide.
- Ergonomie de publication : messages enregistrés, contrôle de la QoS et du retain, propriétés MQTT 5.
- Stockage des identifiants : mots de passe chiffrés ou stockés en clair dans des fichiers de configuration.
- Plateformes couvertes : versions Windows, macOS et Linux pour votre équipe.
- Licence et maintenance : open source, gratuit ou commercial, et fréquence des mises à jour.
Comparatif des principaux explorateurs desktop
| Application | Licence | Point fort | À considérer |
|---|---|---|---|
| MQTT Explorer | Open source | Excellente arborescence hiérarchique avec compteurs de messages, historique des payloads, différences et graphiques numériques | Conçu pour la navigation ; la publication reste basique |
| MQTTX (desktop) | Open source | Vue de type messagerie par connexion, solide support de MQTT 5, connexions enregistrées, scripting | Orienté flux ; la vue arborescente est moins centrale |
| MQTT.fx | Commerciale | Outil de longue date, familier pour de nombreux ingénieurs | La licence a évolué au fil du temps ; vérifiez les conditions actuelles |
| Explorateur MQTT ConnectMQ Desktop | Outil éditeur | Parcourir les topics, publier des messages de test et inspecter les payloads sur n'importe quel broker MQTT | Outil plus récent ; se combine bien avec le portail web |
MQTT Explorer
MQTT Explorer est l'outil auquel beaucoup pensent quand ils disent « explorateur MQTT ». Il s'abonne largement (par défaut à # et $SYS/#) et affiche tout sous forme d'arbre repliable, avec des compteurs indiquant combien de messages sont arrivés sous chaque branche. Sélectionner un topic affiche le dernier payload, un historique des valeurs récentes et une comparaison avec le message précédent ; les valeurs numériques peuvent être tracées. Pour comprendre un système inconnu, c'est souvent la porte d'entrée la plus rapide.
Méfiez-vous de l'abonnement par défaut à # sur les brokers volumineux ou partagés. Sur le serveur MQTT public gratuit, abonnez-vous uniquement à votre propre préfixe pour rester dans la limite de 10 abonnements par client et éviter d'inonder l'application avec le trafic des autres utilisateurs.
MQTTX Desktop
MQTTX présente chaque connexion comme une conversation : les messages envoyés d'un côté, les messages reçus de l'autre, filtrables par topic. Il excelle pour les tests interactifs de type requête/réponse, les propriétés MQTT 5 et la gestion d'une bibliothèque de connexions. Si votre travail consiste surtout à « envoyer une commande, observer la réponse », MQTTX vous paraîtra naturel.
MQTT.fx
MQTT.fx a été pendant des années le client desktop de référence basé sur Java. Son modèle de licence a changé : vérifiez les conditions actuelles avant d'en faire le standard d'une équipe.
Explorateur MQTT ConnectMQ Desktop
Cet explorateur est proposé aux côtés d'une extension MQTT pour VS Code. Il parcourt les topics, publie des payloads de test et inspecte les messages, et il fonctionne avec n'importe quel broker conforme aux standards, pas seulement le sien. Si vos appareils se connectent déjà à un broker ConnectMQ, c'est un complément pratique au portail : utilisez l'application desktop pendant le développement en local, et l'explorateur de topics en direct ainsi que le client MQTT intégré au navigateur du portail lorsque vous êtes loin de votre machine.
En pratique : préremplir une arborescence de topics et l'explorer
Pour comparer équitablement les explorateurs, fournissez-leur les mêmes données. Les commandes ci-dessous créent une petite arborescence réaliste sur le serveur MQTT public gratuit, sous un préfixe unique. Remplacez ex4m par votre propre chaîne aléatoire, et n'oubliez pas que l'espace public est visible par tous.
P="connectmq/demo/ex4m"
H="-h broker.connectmq.com -p 1883 -i seed-ex4m"
mosquitto_pub $H -r -t "$P/plant1/line1/cnc1/status" -m "running"
mosquitto_pub $H -r -t "$P/plant1/line1/cnc1/telemetry" -m '{"spindle_rpm": 8200, "temp_c": 41.5}'
mosquitto_pub $H -r -t "$P/plant1/line1/robot1/status" -m "idle"
mosquitto_pub $H -r -t "$P/plant1/line2/furnace1/telemetry" -m '{"temp_c": 812, "setpoint_c": 820}'
mosquitto_pub $H -r -t "$P/plant1/utilities/tank1/level" -m "67.2"
Ajoutez ensuite une valeur qui évolue en direct pour que l'historique et les graphiques aient quelque chose à afficher :
for i in $(seq 1 60); do
mosquitto_pub -h broker.connectmq.com -p 1883 -i seed-live-ex4m \
-t "connectmq/demo/ex4m/plant1/utilities/tank1/level" -m "$((60 + RANDOM % 15)).$((RANDOM % 10))"
sleep 1
done
Le topic le plus profond comporte ici 7 niveaux, dans la limite de 8 du serveur MQTT public gratuit.
Paramètres de connexion
Utilisez ces paramètres dans n'importe quel explorateur :
| Champ | Serveur MQTT public gratuit (tests) | Votre broker privé |
|---|---|---|
| Hôte | broker.connectmq.com |
L'hôte de votre broker indiqué dans le portail |
| Port / protocole | 1883 TCP, ou 8883 avec TLS activé | 8883 avec TLS (recommandé) |
| WebSocket | 8083 (ws), 8084 (wss), chemin /mqtt |
Mêmes ports et même chemin |
| Client ID | N'importe quelle valeur unique et non vide | Le client ID généré pour vos identifiants |
| Nom d'utilisateur / mot de passe | Vide | YOUR_USERNAME / YOUR_PASSWORD |
| Abonnement | connectmq/demo/ex4m/# |
# ou votre propre racine |
Ce qu'il faut observer
- Dépliez
plant1et vérifiez que la hiérarchie correspond au plan. Dans les vrais projets, c'est là que vous découvrez des appareils qui publient surPlant1ou placent l'ID de l'appareil au mauvais niveau. - Sélectionnez
tank1/levelet observez l'historique pendant que la boucle tourne. Les explorateurs dotés de graphiques le tracent directement. - Sélectionnez
furnace1/telemetryet vérifiez que le JSON est mis en forme. - Supprimez une valeur retained : publiez un payload vide avec retain sur
cnc1/status. Le nœud devrait disparaître (ou apparaître vide) pour les nouveaux subscribers. - Déconnectez-vous puis reconnectez-vous. Les topics retained réapparaissent instantanément ; les autres attendent de nouveaux messages. C'est le moyen le plus rapide de savoir lesquels de vos topics sont retained.
Une hiérarchie cohérente compte de plus en plus à mesure que les systèmes grandissent. Le style ISA-95 utilisé ci-dessus (site, zone, ligne, cellule) est l'ossature d'un Unified Namespace ; lisez MQTT Sparkplug B et Unified Namespace pour comprendre ce raisonnement.
Dépannage des explorateurs desktop
- Connexion possible en TCP mais pas en TLS : l'application n'utilise peut-être pas le trust store du système d'exploitation. Ajoutez le certificat ISRG Root X1 (Let's Encrypt) comme CA et vérifiez l'horloge de votre système.
- Échec de la connexion WebSocket : le chemin est manquant. Utilisez
/mqttavec les ports 8083 ou 8084. - L'arborescence se fige : vous vous êtes abonné à
#sur un broker chargé. Restreignez l'abonnement. - Déconnexions toutes les quelques secondes : un autre outil utilise le même client ID. De nombreux explorateurs en génèrent un ; assurez-vous que deux connexions enregistrées ne le partagent pas.
- Not authorized sur un broker privé : le client ID doit correspondre à celui émis avec les identifiants.
De l'exploration à la production
Un explorateur desktop est une loupe de débogage ; c'est le broker qui doit être fiable. Lorsque vos appareils dépassent le stade de l'expérimentation, faites-les tourner sur un broker MQTT managé plutôt que sur l'espace de test partagé. Les brokers ConnectMQ prennent en charge MQTT 3.1.1 et 5.0 sur TCP, TLS, WebSocket et WebSocket sécurisé : tous les explorateurs de ce comparatif s'y connectent donc sans configuration particulière. Pour une vue d'ensemble des options d'hébergement, lisez le guide du broker MQTT cloud, et la page dédiée au serveur MQTT public gratuit, liée en introduction, détaille les limites de l'espace partagé. Pour transformer ce que vous voyez dans un explorateur en code applicatif, le guide des bibliothèques client MQTT est l'étape suivante, et les exemples mosquitto_pub et mosquitto_sub couvrent le côté scripté.
Démarrer avec ConnectMQ
Créez un broker privé sur app.connectmq.com avec le plan Serverless gratuit, sans carte bancaire, et connectez votre explorateur desktop préféré avec les identifiants générés. Le portail ajoute un explorateur de topics en direct, un tableau de bord et une vue des appareils organisée selon les niveaux ISA-95, pour inspecter aussi le trafic depuis n'importe quel navigateur.
Questions fréquentes
Quelle est la meilleure application desktop MQTT Explorer ?
Pour parcourir une grande arborescence de topics, MQTT Explorer est difficile à battre. Pour des tests interactifs de publication et de réponse avec MQTT 5, MQTTX est très pratique. Si vous utilisez ConnectMQ, son explorateur desktop et son portail vous offrent un workflow cohérent d'une machine à l'autre.
Un explorateur MQTT desktop peut-il se connecter à n'importe quel broker ?
Oui, tant que l'application prend en charge la version du protocole et le transport du broker. Tous les outils présentés ici parlent le MQTT standard et fonctionnent avec n'importe quel broker conforme, hébergé ou auto-géré.
Est-il sûr de s'abonner à # dans un explorateur MQTT ?
Sur votre propre broker de développement, oui. Sur des brokers de production ou partagés, cela peut submerger l'application et exposer plus de données que nécessaire : abonnez-vous plutôt à une racine spécifique.
Pourquoi certains topics affichent-ils une valeur immédiatement et d'autres restent-ils vides ?
Les topics qui ont un retained message sont livrés dès l'abonnement. Les autres n'apparaissent qu'à la publication du message suivant.



