ELX-Software

Automazione industriale e IoT

ELX-MQTT Broker

Un broker MQTT completo con un'interfaccia web viva

MQTT 3.1.1 e 5.0 scritti da zero, senza librerie di protocollo altrui. Un unico file che porta già con sé interfaccia, archiviazione e TLS: lo si installa e funziona.

v1.0.39 WindowsLinuxARM Gratuito

Entrambe le versioni del protocollo, per intero

MQTT 3.1.1 e 5.0 scritti seguendo la specifica: tutte le proprietà dei pacchetti, gli alias degli argomenti, le sottoscrizioni condivise, gli identificatori di sottoscrizione, No Local, Retain Handling, Will Delay, Message Expiry, i codici di motivo e il pacchetto AUTH.

Un'interfaccia che mostra il traffico

Ritmo dei messaggi, banda, client collegati, argomenti attivi e un flusso di eventi — trasmessi via WebSocket, senza ricaricare la pagina. Un dispositivo che sbanda si vede, invece di doverlo dedurre.

Permessi per argomento

Una regola è un filtro, un tipo di accesso e un verdetto — permettere o negare — e tutto ciò che non è scritto è negato. Una sola riga con il segnaposto $u chiude un client nel proprio ramo dell'albero.

Ponti verso altri broker

Inoltro degli argomenti nei due sensi a livello di server: direzione, prefissi, TLS, protezione dai cicli e riconnessione automatica. Per unire due installazioni non serve alcuno script in mezzo.

Pubblicazione differita e limitatori

Pubblicare su $delayed/60/argomento arriva un minuto dopo e sopravvive a un riavvio. Un secchio a gettoni per collegamento e regole per argomento diradano un sensore loquace invece di scollegarlo.

Tutto via REST

Ciò che sa fare l'interfaccia lo sa fare anche un token: creare dispositivi, concedere permessi, leggere statistiche. Per i sistemi di monitoraggio esistono token di sola lettura.

Schermate

L'interfaccia: ritmo dei messaggi, traffico, collegamenti e salute della macchina a colpo d'occhio
I client collegati con la versione di protocollo, le sottoscrizioni e il traffico
L'albero degli argomenti dal vivo, con ritmi e valori conservati
Storico della banda e del ritmo dei messaggi
Pubblicare un messaggio a mano, con QoS e conservazione
Regole di riscrittura degli argomenti
Utenti e loro permessi sugli argomenti
Impostazioni del broker: porte, TLS, limiti e persistenza
Ponti verso altri broker
Documentazione integrata, disponibile nel broker anche senza rete

Che cos'è

ELX-MQTT Broker è un server di messaggi per il protocollo MQTT, quello che parlano la maggior parte dei sensori, dei controllori e dei sistemi domotici. I dispositivi pubblicano messaggi su argomenti, altri dispositivi si iscrivono a quegli argomenti, e il broker sta in mezzo: decide chi può parlare con chi e fa in modo che per strada non si perda nulla.

Qui il protocollo non è un involucro attorno alla libreria di qualcun altro. Entrambe le versioni sono scritte direttamente dalla specifica, ed è per questo che le parti scomode — sottoscrizioni condivise, scadenza dei messaggi, testamento differito, controllo di flusso — si comportano come dice la specifica e non come è capitato che le implementasse una dipendenza.

Un file, nessuna dipendenzaL'interfaccia, le risorse, il motore di archiviazione e lo strato TLS stanno dentro l'eseguibile. Nessuna immagine Docker da scaricare, nessun ambiente di esecuzione da installare e nessuna base esterna da configurare — persino la persistenza usa un SQLite in Go puro, che fa a meno di CGO.

Cosa sa fare

AmbitoCosa ottenete
ProtocolloMQTT 3.1.1 e 5.0, QoS 0/1/2, messaggi conservati, testamento, sessioni persistenti, code per client assenti
TrasportiTCP semplice, TLS, MQTT su WebSocket e su WebSocket protetto
InterfacciaGrafici dal vivo, elenco dei client, albero degli argomenti, flusso di eventi, modulo di pubblicazione, impostazioni — in sette lingue
Controllo degli accessiPermessi per argomento, negazione predefinita, segnaposto per utente, lettura e scrittura separate
CredenzialiElenco interno, MariaDB o MySQL, SQLite, CSV, JWT, servizio HTTP esterno
InstradamentoRegole di riscrittura degli argomenti, sottoscrizioni automatiche, ponti fra broker
Regolazione del trafficoSecchio a gettoni per collegamento, ritmi e scarti per schema di argomento
PianificazionePubblicazione differita tramite $delayed, compatibile con EMQX, visibile e annullabile
IntegrazioneAPI REST con token, token di sola lettura, endpoint di statistica
PersistenzaMessaggi conservati, sessioni, code e messaggi differiti in SQLite

Metterlo in funzione

Su Linux il pacchetto installa un servizio systemd e lo avvia. Su Windows l'eseguibile funziona così com'è — avviatelo e aprite l'interfaccia.

Debian / Ubuntu
sudo dpkg -i elxmqttbroker_*.deb
sudo systemctl status elxmqttbroker
# interfaccia: http://<server>:8567   MQTT: 1883, TLS: 8883
Windows
elxmqttbroker.exe
# interfaccia: http://127.0.0.1:8567
# accesso predefinito: admin / admin — da cambiare al primo ingresso
Porte1883 è MQTT semplice, 8883 è MQTT su TLS, 8567 è l'interfaccia, e il WebSocket condivide la porta dell'interfaccia. Tutte e quattro sono configurabili, e nessuna deve essere esposta a Internet perché il broker sia utile.

In breve

Protocollo
MQTT 3.1.1 e MQTT 5.0
Sistemi operativi
Debian, Ubuntu, Windows 10 e 11
Architetture
amd64, arm64, armhf
Scritto in
Go, senza CGO
Archiviazione
SQLite, un solo file
Lingue dell'interfaccia
Sette
Porte predefinite
1883, 8883, 8567
Dipendenze esterne
Nessuna

ELX-MQTT Broker

Un broker MQTT completo con un'interfaccia web viva

Scarica

Nella stessa sezione