Skip to content

UlisesChoco/Spring-MQTT-test

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spring MQTT Test

Aplicación de Spring Boot creada para probar la funcionalidad de MQTT en Spring, con el objetivo de integrarlo en un proyecto universitario.


Tecnologías utilizadas

  • Java 17
  • Spring Boot 3.5.4
  • Spring Integration MQTT 6.5.1
  • Eclipse Paho Client MQTTV3 1.2.6

Setup

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.

Instalación de Mosquitto:

sudo apt install mosquitto

Ejecución del broker en el puerto 2025:

mosquitto -v -p 2025
  • La opción -v permite obtener logs detallados del servidor.
  • La opción -p 2025 indica que el broker MQTT debe correr en el puerto 2025.

Con Mosquitto en ejecución, ya se puede iniciar la aplicación Spring Boot.


Flujo de la aplicación

El funcionamiento de la aplicación se organiza en torno a dos clases de configuración ubicadas en el paquete config:

  • MQTTInboundConfig
  • MQTTOutboundConfig

MQTTInboundConfig

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á

inbound config

Los mensajes recibidos se manejan con el siguiente método:

message handler

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:

input channel


MQTTOutboundConfig

Esta clase permite enviar mensajes a un tópico MQTT.

Primero se configura una factory de clientes con la URL del servidor:

client factory

Luego, se utiliza esa factory para crear un cliente publicador, indicando también el tópico al que se enviarán los mensajes:

outbound config

Finalmente, se define una interfaz que actúa como gateway para publicar mensajes:

gateway


Uso final

Con ambas clases configuradas, se puede utilizar la interfaz MyGateway (de MQTTOutboundConfig) para enviar mensajes al broker Mosquitto.

1. Ejecutar el broker MQTT:

start broker

2. Iniciar la aplicación Spring Boot:

Ambos clientes MQTT (tanto el que escucha como el que envía) se conectarán automáticamente:

clients connected

3. Enviar un mensaje desde el cliente publicador:

send message

4. Ver el mensaje recibido y loggeado por el cliente suscriptor:

receive message

About

MQTT publish/subscribe test with Spring Boot & Paho

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages