MQTT es un protocolo de mensajes máquina-a-máquina y provee una arquitectura de comunicación de tipo publicación/suscripción pensada para dispositivos tipo IoT (Internet of Thing).
Lo tenemos disponible ya compilado en el repositorio epel para instalarlo con yum:
# yum -y install epel-release # yum -y install mosquitto # systemctl start mosquitto # systemctl enable mosquitto
En el argot del paradigma de sistema distribuido publicación/suscripción a los tipos de mensajes se les denomina Topic. Un Topic es una etiqueta que se asigna a un tipo de mensaje. Es realidad los topics definen una jerarquía. Por ejemplo los topics:
sensor/exterior/temperatura sensor/exterior/humedad
definen dos topics difetentes pero que heredan los parámetros definidos para sensor/exterior.
El servidor mosquitto lo manejamos a nivel de terminal con instrucciones sencillas. Disponemos de dos comandos para publicar y suscribirnos. A continuación vemos un ejemplo.
# mosquitto_sub -h localhost -t prueba
Con esto nuestro servidor se ha subscrito al topic «prueba».
En otra ventana de comandos publicaremos algo en ese topic:
/# mosquitto_pub -h localhost -t prueba -m "hola"
Innediatamente aparece el mensaje de texto en el subscriptor:
# mosquitto_sub -h localhost -t prueba hola
En este caso hemos usado las opciones:
-h nombre del servidor
-t nombre del topic
-m mensage
Evidentemente este era un ejemplo muy sencillo. Normalmente se definirán mensajes desde ficheros o se procesarán mensajes desde fuentes en tiempo real.
Como ampliación:
- Proteger Mosquitto con passwords
- Encriptado de las comunicaciones (MQTT SSL)
- Configurar sobre websockets
=======================================
En Debian la instalación es algo diferente:
# apt-get install mosquitto mosquitto-clients
Tras esta instalación el servidor quedará activado y configurado en el arranque ya que se configura el servicio que arranca:
usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf