Acerca del proyecto
En post pasados conocimos las definiciones principales del mosquitto con el protocolo mqtt y realizamos la instalación en varios sistemas operativos, ahora vamos a ver como se realiza la comunicación a los topics y como hacer la suscripción a ellos.
Conocimiento previo
Para realizar este proyecto se requiere conocimiento previo de los siguientes temas, si aun no has trabajado con lo que se menciona en la siguiente tabla, allí están los links a los post para que puedas dar un repaso adicional o puedas recordar el conocimiento necesario para poder realizar este proyecto.
Proyecto | Descripción |
---|---|
Mosquitto server | Encontrara las definiciones necesarias para entender el protocolo de comunicación mqtt. |
Instalar mosquitto en ubuntu | En los repositorios de paquetes de ubuntu, podemos encontrar el servidor de mosquitto, el cual solo necesitamos actualizar los paquetes de nuestro sistema operativo y con una simple instrucción realizar la descarga e instalación del servidor. |
Instalar mosquitto en windows | En este post, vamos a instalar mosquitto en windows 10, vamos a ingresar a la pagina oficial y buscar el instalador, el cual la ultima versión disponible es la 1.6.7 y lo podemos encontrar para las arquitecturas de procesador de x64 y x32 bits. |
mosquitto_sub
mosquitto_sub es un simple cliente MQTT versión 3.1.1 que se suscribirá a temas e imprimirá los mensajes que reciba.[1]
Además de suscribirse a temas, mosquitto_sub puede filtrar los mensajes recibidos para que no se impriman (ver la opción -T) o cancelar la suscripción a los temas (ver la opción -U). Darse de baja de los temas es útil para los clientes que se conectan con una sesión limpia configurada como falsa.
mosquitto_pub
mosquitto_pub es un cliente simple de MQTT versión 3.1.1 que publicará un solo mensaje sobre un tema y terminará.[2]
Opciones
Vamos a ver las opciones en comunes que tienen el publicador y el suscriptor para poder enviar y recibir mensajes.
Estas opciones se pueden enviar directamente desde la url, el programa que estemos utilizando para poder enviar estos mensajes o desde la configuración del archivo config.
Opción | Descripción |
---|---|
-t, --topic | El tema MQTT al que suscribirse. Esta opción puede repetirse para suscribirse a varios temas. |
-m, --message | Envíe un solo mensaje desde la línea de comando. |
-q, --qos | Especifique la calidad de servicio que se utilizará para el mensaje, entre 0, 1 y 2. El valor predeterminado es 0. |
-v, --verbose | Imprime los mensajes recibidos de forma prolija. Con este argumento, los mensajes se imprimirán como "carga útil del tema". Cuando no se proporciona este argumento, los mensajes se imprimen como "carga útil". |
-h, --host | Especifique el host al que conectarse. El valor predeterminado es localhost. |
-p, --port | Conéctese al puerto especificado. Si no se proporciona, se utilizará el valor predeterminado de 1883 para MQTT simple o 8883 para MQTT sobre TLS. |
Instalación de mosquitto
Antes de iniciar con los ejemplos les recomiendo ver los post que realizamos para la instalación de mosquito en linux y windows, adicionalmente tenemos un post donde damos la explicación de cómo utilizar esté servidor con docker. Los links no se pueden encontrar en conocimientos previos al principio de este post.
Ejemplo: enviar mensaje al topic
En este primer ejemplo vamos a crear un tema de temperatura (topic), este es creado con el subscriptor y lo dejamos escuchando todas las peticiones que le lleguen, para ello realizamos lo siguiente:
En una ventana de comandos o cmd vamos a crear el topic y lo dejamos a la espera de que se conecte algún subscriptor:
mosquitto_sub -t sensors/temperature
Ahora vamos a enviar una variable a ese topic, para ellos realizamos el envió del valor numérico publicando en el topic, veamos la siguiente instrucción:
>mosquitto_pub -t sensors/temperature -m 32
Referencias
[1] mosquitto sub https://mosquitto.org/man/mosquitto_sub-1.html, Consultado Mayo 2021
[2] mosquitto pub https://mosquitto.org/man/mosquitto_pub-1.html, Consultado Mayo 2021