Mosquitto MQTT Server è un broker di messaggi che funziona tramite il protocollo MQTT. MQTT è un protocollo di messaggistica leggero che è lo standard ISO per l'uso in aggiunta al protocollo TCP/IP. Viene utilizzato principalmente per comunicare con i dispositivi Internet of Things. Installeremo Mosquitto su un server Ubuntu 16.04 e invieremo messaggi dal software spia MQTT. Mosquitto è un progetto Eclipse ed è distribuito sotto licenza EDL. Allora iniziamo.
Compilazione del server Mosquitto MQTT dalla sorgente
Per installare mosquitto dobbiamo eseguire i seguenti passaggi. Primo aggiornamento delle fonti e ottenere le dipendenze
apt update
apt-get install build-essential libwrap0-dev libssl-dev libc-ares-dev uuid-dev xsltproc
Aggiungi l'utente mosquitto, perché per impostazione predefinita viene eseguito come non root.
adduser mosquitto
Per comodità aggiungeremo i diritti sudo a questo utente, perché faremo il resto del processo di installazione come questo utente
usermod -aG sudo mosquitto
Quindi faremo il login come questo utente e cd nella sua home directory
su mosquitto
cd
Successivamente scaricheremo il codice sorgente di Mosquitto, l'ultima versione è 1.4.9 al momento della scrittura, ma ti suggerisco di controllare la pagina di download per vedere se c'è una nuova versione. Quindi, scarichiamo l'ultima versione
wget https://mosquitto.org/files/source/mosquitto-1.4.9.tar.gz
Decomprimilo e cd nella directory
tar xvzf mosquitto-1.4.9.tar.gz
cd mosquitto-1.4.9/
E poi compiliamo e installiamo il software
make && sudo make install
Configurazione del server Mosquitto MQTT
Al termine dell'installazione, è necessario creare la password per il nuovo utente.
sudo mosquitto_passwd -c /etc/mosquitto/pwfile mqtt-spy
Ti verrà richiesto di creare la password per il nuovo utente mqtt-spy che utilizzeremo per connetterci dal client. Questo è diverso dall'utente zanzara, che è l'utente di sistema per l'esecuzione del server mosquitto. Dobbiamo aggiungere i permessi a questo utente mosquitto a tutte le directory rilevanti
sudo mkdir /var/lib/mosquitto/
sudo chown -R mosquitto:mosquitto /var/lib/mosquitto/
Successivamente dobbiamo creare un file di configurazione per Mosquitto MQTT Server, quindi utilizziamo nano per creare un nuovo file
sudo nano /etc/mosquitto/mosquitto.conf
Lì puoi incollarlo
persistence true
persistence_location /var/lib/mosquitto/
persistence_file mosquitto.db
log_dest syslog
log_dest stdout
log_dest topic
log_type error
log_type warning
log_type notice
log_type information
connection_messages true
log_timestamp true
allow_anonymous false
password_file /etc/mosquitto/pwfile
La configurazione sembra lunga, ma abbiamo aggiunto log e file password più dettagliati.
Dopo aver salvato la configurazione, eseguiamo ldconfig
sudo ldconfig
Aggiungiamo il file dell'unità systemd
sudo nano /etc/systemd/system/mosquitto.service
Incollalo lì:
[Unit]
Description=Insite MQTT Broker
[Service]
ExecStart=/usr/local/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
Restart=always
[Install]
WantedBy=multi-user.target
Iniziamo il servizio
sudo systemctl start mosquitto.service
E controlla il suo stato
systemctl status mosquitto.service

Per farlo partire all'avvio, esegui questo comando
sudo systemctl enable mosquitto.service
Configurazione di MQTT-Spy e connessione
MQTT-Spy è un client basato su Java che useremo per connetterci al server MQTT. Puoi ottenerlo da github ma tieni presente che devi avere installato Oracle JDK. NON funziona con OpenJDK. La prima cosa da fare dopo aver fissato MQTT-spy è creare una nuova connessione. Aggiungi l'IP del tuo server e la porta predefinita 1883.

Quindi aggiungi la password e il nome utente che abbiamo creato in precedenza, nel mio caso è mqtt-spy e la password è password.

Quindi possiamo aprire la finestra del terminale sul server e digitare il seguente comando
mosquitto_sub -v -t 'linoxide/topic' -u mqtt-spy -P password
Per spiegare i flag, -v è per verbosità, -t è per argomento seguito da argomento tra virgolette, -u è per utente e -P è password. Dopo aver digitato questo comando sembrerà che si blocchi, ma poi dobbiamo usare MQTT-spy per creare un nuovo argomento e inviare un messaggio allo stesso argomento, come nell'immagine qui sotto.

Conclusione
Abbiamo installato con successo il server Mosquitto MQTT che ti consente di avere una rete di dispositivi IoT connessi tramite il protocollo MQTT 3.1. L'abbiamo installato su Ubuntu su un classico PC x86, che è ciò che la maggior parte delle persone usa per scopi di sviluppo e apprendimento. Per l'IoT reale vorresti un dispositivo ARM. Questo è tutto per questo articolo grazie per la lettura.