Objetivos
;
Material requerido.
Un PC con Windows, claro!! |
Montar un broker MQTT en windows
Veamos, si preguntas en Google algo del tipo de que participación tiene cada moderno sistema operativo para PCs, obtenemos rápidamente una tabla como esta:
Las cifras pueden variar ligeramente dependiendo de a quién preguntes y del año que te muestre. También hay variaciones entre las participaciones a nivel Mundial y la participación por países, pero de todos modos el cuadro que pintan es bastante parecido: Windows Manda de lejos.
Y si hasta ahora, llevamos unas cuantas sesiones hablando de instalar Mosquitto en Raspberry Pi que es una fracción de ese 2.35% de Linux… ¿No deberíamos ver si es posible instalar nuestro Mosquitto en Windows? Tendría todo el sentido del mundo, ya que Mosquitto es un servidor ligero que podríamos correr y nuestra máquina habitual o en cualquiera de esos PC viejos que tenemos abandonados por los rincones.
Y en cuanto echas una miradita a Internet, descubres que, por supuesto que hay una versión Mosquito descargable e instalable como servicio para Windows, y dado su predominancia en el mercado, sería un desperdicio no aprovechar la ocasión para ver como instalar en nuestro viejo y confirtable Windows, un broker Mosquitto con todas las de la ley.
Y de eso va esta sesión
Descargar e instalar Mosquitto para Windows
Para empezar, tenemos que decir que todo lo que hemos dicho sobre MQTT y Mosquitto en las sesiones anteriores son perfectamente válidas para la versión Windows. Volveremos a ello cuando configuremos Mosquitto Windows, pero los comandos de uso y configuraciones de usuarios y del mosquitto.conf son las mismas y puedes trasladar los ficheros de una a otra versión porque en realidad es el mismo software con compilados diferentes (Y algunas adaptaciones al sistema que es lo que iremos viendo) Empecemos descargando desde la página de Mosquitto el programa instalador
Hay varias versiones según nuestro sistema operativo, pero aquí hemos venido a hablar de Windows así que pincha en esa opción y cuando acabe de bajar inicia el instalador.
Te conviene dejar la opción de instalar Mosquitto como un servicio más de Windows porque así se incluirá en el apartado de procesos activos en el sistema. Te ofrecerá la instalación por defecto en “Program Files\Mosquitto”, dále a Install y espera tranquilo hasta que acabe:
Una vez que termine, tenemos que configurar los usuarios y el mosquitto.conf exactamente igual que en la última sesión, y de hecho deberíamos poder copiar directamente el fichero mosquitto.conf al directorio de la instalación:
c:\Program Files\mosquitto
Al terminar podemos abrir una consola de sistema para comprobarlo, con [Windows] + X para que aparezca la consola de administrador de Windows. Pincha en «Windows Power Shell (Administrador)»
Se te abrirá una ventana de consola de Windows muy similar a la consola Bash de Linux Raspi que vimos anteriormente. Escribe en ella.
cd ‘C:\Program Files\mosquitto\’
Al cambiar a el directorio de instalación de mosquitto, si haces un listado con “dir” veras los comandos a los que nos hemos acostumbrado en Raspberry, que en Windows se llaman exactamente igual y se comportan exactamente de la misma manera (Y con las mismas opciones, claro está).
Puedes ahora crear el fichero de contraseñas y el mosquitto.conf donde apuntamos igual que en la version Linux / Raspberry:
listener 1883 allow_anonymous false log_dest file /etc/mosquitto/mosquitto.log password_file /etc/mosquitto/passwd
Ahora es exactamente lo mismo, pero, cambiando la ruta de los archivos para que se adapten a los path de Windows:
listener 1883 allow_anonymous false log_dest file C:\Program Files\mosquitto\mosquitto.log password_file C:\Program Files\mosquitto\passwd
Si hemos copiado el fichero de contraseñas que usábamos en la Raspberry Pi debería funcionar aquí también, y si no podemos generar un fichero nuevo con los mismos comandos que en la anteúltima sesión. Recuerda que bastaba con escribir un fichero de texto con los nombres de usuario en el notepad por ejemplo seguidos de «:»
Ahora invocas el mismo comando, para que encripte las contraseñas:
mosquitto_passwd -U passw2.txt
Finalmente, asegurate de que la línea de tu mosquitto.conf que apunta al fichero de passwords corresponda en nombre y directorio al que hagas aqui y listo. Solo nos queda activar / Parar el servicio de Mosquitto en Windows, y para eso basta con escribir la palabra “servicios” en la ventana de búsqueda de la esquina inferior izquierda de Windows junto al botón de inicio y aparece el menú Servicios. (Aplicación) Púlsalo:
Verás una pantalla con los servicios en ejecución en Windows ordenados alfabéticamente. Vete a la M hasta que veas Mosquitto Broker (O pincha en cualquier servicio y luego en la M):
Si te fijas en la columna de estado se muestra que Mosquitto Broker no está en ejecución. Para cambiarlo haz doble clic en la línea del servicio que queremos arrancar y verás esto:
El tipo de servicio está en Automático, es decir se iniciará con Windows (Puedes cambiarlo a Manual o deshabilitado) y si pulsas debajo en el botón [Iniciar] el servicio arrancará:
Ahora el servicio Mosquitto figura En ejecución, o sea activado con la última configuración guardada y si vuelves a hacerle doble clic puedes detenerlo con el botón [Detener]
Probando el servidor Mosquitto en Windows
No hay mucha diferencia con lo que hemos probado en las otras sesiones. Podemos abrir dos consolas de powerShell administrator igual que antes y en una escribir
mosquitto_sub -d -h localhost -p 1883 -u charly -P contrase -t "Prometec/temp"
Y en la otra publicar algo
mosquitto_pub -d -h localhost -p 1883 -u charly -P contrase -t "Prometec/temp"-m "99.99"
También puedes probar con el MQTT Explorer y por ejemplo el programa del ESP32 que probamos en otra sesión y veras que se comporta exactamente igual que la versión Raspberry.