Requisits previs
Pas 1: instal·leu Mosquitto Broker
Segon pas: instal·leu els clients i proveu
Tercer pas: Assegureu-vos amb una contrasenya
Conclusió
MQTT és un protocol de missatgeria "lleuger" basat en el model de publicació/subscripció sobre TCP/IP per a la comunicació entre dispositius "Internet de les coses" com ESP8266, Raspberry Pi, etc. És molt popular amb pocs recursos i aplicacions amb bateria com ara la llar. automatització, sistemes d'alarma de seguretat i xarxes de sensors alimentades per bateries.
Mosquitto és un corredor de missatges (o servidor) de codi obert que implementa protocols MQTT. Amb el seu bon suport comunitari, documentació i facilitat d'instal·lació, s'ha convertit en un dels corredors MQTT més populars.
Requisits previs
- Un servidor Ubuntu 16.04 amb
rootaccés
- Obre el port
TCP:1883al tallafoc
Pas 1: instal·leu Mosquitto Broker
Actualitzeu la llista de paquets d'Ubuntu i instal·leu l'últim Mosquitto Broker disponible
sudo apt-get update
sudo apt-get install mosquitto
El servei Mosquitto s'iniciarà després de la instal·lació.
Segon pas: instal·leu els clients i proveu
Instal·leu clients MQTT
sudo apt-get install mosquitto-clients
Els clients de Mosquitto ens ajuden a provar fàcilment MQTT mitjançant una utilitat de línia d'ordres. Utilitzarem dues finestres d'ordres, una per subscriure's a un tema anomenat "test"i una altra per publicar-hi un missatge.
Els temes són etiquetes que utilitza l'agent per filtrar missatges per a cada client connectat. Un programa client subscrit a un tema "Home1/BedroomTemp"només escoltarà els missatges publicats sobre el mateix tema per altres clients.
Subscriu-te al tema "test"
mosquitto_sub -t "test"
Mosquito_subés un client de subscripció que vam instal·lar a l'ordre anterior. Aquí estem especificant " -t" seguit d'un nom de tema.
Publica un missatge al tema "test"
Inicieu sessió al terminal com a segona instància i publiqueu un missatge sobre el "test"tema.
mosquitto_pub -m "message from mosquitto_pub client" -t "test"
Aquí el paràmetre addicional " –m" va seguit del missatge que volem publicar. Premeu " Enter" i hauríeu de veure un missatge mosquitto_pub clienta l'altre terminal on mosquito_sub clients'està executant.
Tercer pas: Assegureu-vos amb una contrasenya
Mosquitto ve amb una utilitat de generació de fitxers de contrasenya anomenada mosquitto_passwd.
sudo mosquitto_passwd -c /etc/mosquitto/passwd dave
Password: password
Creeu un fitxer de configuració per a Mosquitto apuntant al fitxer de contrasenyes que acabem de crear.
sudo nano /etc/mosquitto/conf.d/default.conf
Això obrirà un fitxer buit. Enganxeu-hi el següent.
allow_anonymous false
password_file /etc/mosquitto/passwd
Deseu i sortiu de l'editor de text amb " Ctrl+O", " Enter" i " Ctrl+X".
Ara reinicieu el servidor Mosquitto i proveu els nostres canvis.
sudo systemctl restart mosquitto
A la finestra de subscripció del client, premeu " Ctrl+C" per sortir del client de subscripció i reinicieu-lo amb l'ordre següent.
mosquitto_sub -t "test" -u "dave" -P "password"
Observeu la -P majúscula aquí .
A la finestra de publicació del client, proveu de publicar un missatge sense contrasenya.
mosquitto_pub -t "test" -m "message from mosquitto_pub client"
El missatge es rebutjarà amb el següent missatge d'error.
Connection Refused: not authorised.
Error: The connection was refused.
Ara publiqueu un missatge amb usernamei password.
mosquitto_pub -t "test" -m "message from mosquitto_pub client" -u "dave" -P "password"
Premeu " Enter" i veureu el missatge a la finestra de subscripció del client, com al pas dos.
Conclusió
Ara hem configurat un servidor MQTT protegit amb contrasenya. Podeu utilitzar l'IP pública del vostre servidor Ubuntu com a agent MQTT per als vostres projectes.