ELX-Software

Automatisation industrielle et IoT

ELX-MQTT Broker

Un courtier MQTT complet avec une interface web vivante

MQTT 3.1.1 et 5.0 écrits de zéro, sans bibliothèque de protocole tierce. Un fichier unique qui porte déjà son interface, son stockage et son TLS : installez-le et il tourne.

v1.0.39 WindowsLinuxARM Gratuit

Les deux versions du protocole, entièrement

MQTT 3.1.1 et 5.0 écrits d'après la spécification : toutes les propriétés de paquets, les alias de sujets, les abonnements partagés, les identifiants d'abonnement, No Local, Retain Handling, Will Delay, Message Expiry, les codes de motif et le paquet AUTH.

Une interface qui montre le trafic

Débit de messages, bande passante, clients connectés, sujets actifs et un flux d'événements — transmis par WebSocket, sans recharger la page. Un appareil qui déraille se voit, au lieu de se déduire.

Des droits par sujet

Une règle, c'est un filtre, un type d'accès et un verdict — autoriser ou refuser —, et tout ce qui n'est pas écrit est refusé. Une seule ligne avec le substitut $u enferme un client dans sa propre branche de l'arbre.

Des ponts vers d'autres courtiers

Report de sujets dans les deux sens au niveau du serveur : direction, préfixes, TLS, protection contre les boucles et reconnexion automatique. Relier deux installations n'exige aucun script au milieu.

Publication différée et limiteurs

Publier vers $delayed/60/sujet arrive une minute plus tard et survit à un redémarrage. Un seau à jetons par connexion et des règles par sujet éclaircissent un capteur bavard au lieu de le déconnecter.

Tout par REST

Ce que l'interface sait faire, un jeton le sait aussi : créer des appareils, accorder des droits, lire les statistiques. Pour les systèmes de supervision, il existe des jetons en lecture seule.

Captures d'écran

L'interface : débit de messages, trafic, connexions et santé de la machine en un coup d'œil
Les clients connectés avec leur version de protocole, leurs abonnements et leur trafic
L'arbre des sujets en direct, avec débits et valeurs conservées
Historique de la bande passante et du débit de messages
Publier un message à la main, avec QoS et conservation
Règles de réécriture des sujets
Comptes et droits sur les sujets
Réglages du courtier : ports, TLS, limites et persistance
Ponts vers d'autres courtiers
Documentation intégrée, disponible hors ligne dans le courtier

Ce que c'est

ELX-MQTT Broker est un serveur de messages pour le protocole MQTT, celui que parlent la plupart des capteurs, automates et systèmes domotiques. Les appareils publient des messages dans des sujets, d'autres appareils s'abonnent à ces sujets, et le courtier siège au milieu : il décide qui peut parler à qui et veille à ce que rien ne se perde en route.

Le protocole n'est pas ici une enveloppe autour de la bibliothèque de quelqu'un d'autre. Les deux versions sont écrites directement d'après la spécification, ce qui explique que les parties inconfortables — abonnements partagés, expiration des messages, testament différé, contrôle de flux — se comportent comme la spécification l'énonce, et non comme une dépendance l'a implémenté par hasard.

Un fichier, aucune dépendanceL'interface, les ressources, le moteur de stockage et la pile TLS sont dans l'exécutable. Aucune image Docker à récupérer, aucun environnement d'exécution à installer et aucune base externe à configurer — même la persistance utilise un SQLite en Go pur, qui se passe de CGO.

Ce qu'il sait faire

DomaineCe que vous obtenez
ProtocoleMQTT 3.1.1 et 5.0, QoS 0/1/2, messages conservés, testament, sessions persistantes, files d'attente hors ligne
TransportsTCP simple, TLS, MQTT sur WebSocket et sur WebSocket sécurisé
InterfaceGraphiques en direct, liste des clients, arbre des sujets, flux d'événements, formulaire de publication, réglages — en sept langues
Contrôle d'accèsDroits par sujet, refus par défaut, substituts par compte, lecture et écriture séparées
IdentifiantsListe interne, MariaDB ou MySQL, SQLite, CSV, JWT, service HTTP externe
AcheminementRègles de réécriture des sujets, abonnements automatiques, ponts entre courtiers
Régulation du traficSeau à jetons par connexion, débits et rejets par motif de sujet
PlanificationPublication différée via $delayed, compatible EMQX, visible et annulable
IntégrationAPI REST avec jetons, jetons en lecture seule, points de statistiques
PersistanceMessages conservés, sessions, files d'attente et messages différés en SQLite

Le mettre en route

Sous Linux, le paquet installe un service systemd et le démarre. Sous Windows, l'exécutable fonctionne tel quel — lancez-le et ouvrez l'interface.

Debian / Ubuntu
sudo dpkg -i elxmqttbroker_*.deb
sudo systemctl status elxmqttbroker
# interface : http://<serveur>:8567   MQTT : 1883, TLS : 8883
Windows
elxmqttbroker.exe
# interface : http://127.0.0.1:8567
# accès par défaut : admin / admin — à changer à la première connexion
Ports1883 pour le MQTT simple, 8883 pour le MQTT sur TLS, 8567 pour l'interface, et le WebSocket partage le port de l'interface. Les quatre sont configurables, et aucun n'a besoin d'être exposé à Internet pour que le courtier soit utile.

En bref

Protocole
MQTT 3.1.1 et MQTT 5.0
Systèmes d'exploitation
Debian, Ubuntu, Windows 10 et 11
Architectures
amd64, arm64, armhf
Écrit en
Go, sans CGO
Stockage
SQLite, un seul fichier
Langues de l'interface
Sept
Ports par défaut
1883, 8883, 8567
Dépendances externes
Aucune

ELX-MQTT Broker

Un courtier MQTT complet avec une interface web vivante

Télécharger

Dans la même rubrique