Aplicación de Spring Boot creada para probar la funcionalidad de MQTT en Spring, con el objetivo de integrarlo en un proyecto universitario.
- Java 17
- Spring Boot 3.5.4
- Spring Integration MQTT 6.5.1
- Eclipse Paho Client MQTTV3 1.2.6
Se necesita tener un broker MQTT corriendo localmente en la misma máquina donde se ejecuta esta aplicación. En este caso, se utilizó Mosquitto sobre Ubuntu Linux.
sudo apt install mosquittomosquitto -v -p 2025- La opción
-vpermite obtener logs detallados del servidor. - La opción
-p 2025indica que el broker MQTT debe correr en el puerto 2025.
Con Mosquitto en ejecución, ya se puede iniciar la aplicación Spring Boot.
El funcionamiento de la aplicación se organiza en torno a dos clases de configuración ubicadas en el paquete config:
MQTTInboundConfigMQTTOutboundConfig
Esta clase se encarga de escuchar mensajes de un tópico MQTT específico.
El método inbound() permite configurar:
- La URL del servidor Mosquitto
- El ID de cliente que identificará a la aplicación
- El tópico al que se suscribirá
Los mensajes recibidos se manejan con el siguiente método:
Actualmente, los mensajes se loggean por consola, aunque se podría extender fácilmente para realizar otro tipo de procesamiento.
Este método se activa mediante la anotación:
@ServiceActivator(inputChannel = "mqttInputChannel")donde mqttInputChannel es el canal configurado previamente:
Esta clase permite enviar mensajes a un tópico MQTT.
Primero se configura una factory de clientes con la URL del servidor:
Luego, se utiliza esa factory para crear un cliente publicador, indicando también el tópico al que se enviarán los mensajes:
Finalmente, se define una interfaz que actúa como gateway para publicar mensajes:
Con ambas clases configuradas, se puede utilizar la interfaz MyGateway (de MQTTOutboundConfig) para enviar mensajes al broker Mosquitto.
Ambos clientes MQTT (tanto el que escucha como el que envía) se conectarán automáticamente:









