ELX-Software

Automatización industrial e IoT

ELX-MQTT Broker

Un broker MQTT completo con una interfaz web viva

MQTT 3.1.1 y 5.0 escritos desde cero, sin bibliotecas de protocolo ajenas. Un único archivo que ya lleva consigo la interfaz, el almacenamiento y el TLS: se instala y funciona.

v1.0.39 WindowsLinuxARM Gratuito

Las dos versiones del protocolo, completas

MQTT 3.1.1 y 5.0 escritos siguiendo la especificación: todas las propiedades de los paquetes, los alias de temas, las suscripciones compartidas, los identificadores de suscripción, No Local, Retain Handling, Will Delay, Message Expiry, los códigos de motivo y el paquete AUTH.

Una interfaz que muestra el tráfico

Ritmo de mensajes, ancho de banda, clientes conectados, temas activos y un flujo de sucesos — transmitidos por WebSocket, sin recargar la página. Un dispositivo que se desmadra se ve, en lugar de deducirse.

Permisos por tema

Una regla es un filtro, un tipo de acceso y un veredicto — permitir o denegar —, y todo lo que no está escrito queda denegado. Una sola línea con el comodín $u encierra a un cliente en su propia rama del árbol.

Puentes hacia otros brokers

Reenvío de temas en ambos sentidos a nivel de servidor: dirección, prefijos, TLS, protección contra bucles y reconexión automática. Unir dos instalaciones no exige ningún guion en medio.

Publicación diferida y limitadores

Publicar en $delayed/60/tema llega un minuto después y sobrevive a un reinicio. Un cubo de fichas por conexión y reglas por tema aclaran un sensor charlatán en lugar de desconectarlo.

Todo por REST

Lo que sabe hacer la interfaz lo sabe hacer también un testigo: crear dispositivos, conceder permisos, leer estadísticas. Para los sistemas de supervisión hay testigos de solo lectura.

Capturas

La interfaz: ritmo de mensajes, tráfico, conexiones y salud de la máquina de un vistazo
Los clientes conectados con su versión de protocolo, sus suscripciones y su tráfico
El árbol de temas en directo, con ritmos y valores retenidos
Historial del ancho de banda y del ritmo de mensajes
Publicar un mensaje a mano, con QoS y retención
Reglas de reescritura de temas
Usuarios y sus permisos sobre los temas
Ajustes del broker: puertos, TLS, límites y persistencia
Puentes hacia otros brokers
Documentación integrada, disponible en el broker sin conexión

Qué es

ELX-MQTT Broker es un servidor de mensajes para el protocolo MQTT, el que hablan la mayoría de sensores, controladores y sistemas domóticos. Los dispositivos publican mensajes en temas, otros dispositivos se suscriben a esos temas, y el broker está en medio: decide quién puede hablar con quién y procura que por el camino no se pierda nada.

Aquí el protocolo no es una envoltura alrededor de la biblioteca de otro. Ambas versiones están escritas directamente a partir de la especificación, y por eso las partes incómodas — suscripciones compartidas, caducidad de mensajes, testamento diferido, control de flujo — se comportan como dice la especificación y no como resultó que las implementara una dependencia.

Un archivo, ninguna dependenciaLa interfaz, los recursos, el motor de almacenamiento y la capa TLS están dentro del ejecutable. Ninguna imagen de Docker que descargar, ningún entorno de ejecución que instalar y ninguna base externa que configurar — incluso la persistencia usa un SQLite en Go puro, que prescinde de CGO.

Qué sabe hacer

ÁmbitoLo que obtiene
ProtocoloMQTT 3.1.1 y 5.0, QoS 0/1/2, mensajes retenidos, testamento, sesiones persistentes, colas para clientes ausentes
TransportesTCP simple, TLS, MQTT sobre WebSocket y sobre WebSocket seguro
InterfazGráficos en directo, lista de clientes, árbol de temas, flujo de sucesos, formulario de publicación, ajustes — en siete idiomas
Control de accesoPermisos por tema, denegación por omisión, comodines por usuario, lectura y escritura separadas
CredencialesLista interna, MariaDB o MySQL, SQLite, CSV, JWT, servicio HTTP externo
EncaminamientoReglas de reescritura de temas, suscripciones automáticas, puentes entre brokers
Regulación del tráficoCubo de fichas por conexión, ritmos y descartes por patrón de tema
PlanificaciónPublicación diferida mediante $delayed, compatible con EMQX, visible y cancelable
IntegraciónAPI REST con testigos, testigos de solo lectura, extremos de estadística
PersistenciaMensajes retenidos, sesiones, colas y mensajes diferidos en SQLite

Ponerlo en marcha

En Linux el paquete instala un servicio systemd y lo arranca. En Windows el ejecutable funciona tal cual — ejecútelo y abra la interfaz.

Debian / Ubuntu
sudo dpkg -i elxmqttbroker_*.deb
sudo systemctl status elxmqttbroker
# interfaz: http://<servidor>:8567   MQTT: 1883, TLS: 8883
Windows
elxmqttbroker.exe
# interfaz: http://127.0.0.1:8567
# acceso inicial: admin / admin — cámbielo al entrar la primera vez
Puertos1883 es MQTT simple, 8883 es MQTT sobre TLS, 8567 es la interfaz, y el WebSocket comparte el puerto de la interfaz. Los cuatro son configurables, y ninguno necesita estar expuesto a Internet para que el broker resulte útil.

En pocas palabras

Protocolo
MQTT 3.1.1 y MQTT 5.0
Sistemas operativos
Debian, Ubuntu, Windows 10 y 11
Arquitecturas
amd64, arm64, armhf
Escrito en
Go, sin CGO
Almacenamiento
SQLite, un solo archivo
Idiomas de la interfaz
Siete
Puertos iniciales
1883, 8883, 8567
Dependencias externas
Ninguna

ELX-MQTT Broker

Un broker MQTT completo con una interfaz web viva

Descargar

En la misma sección