Saltar al contenido principal
MQTT Protocol

Desarrollo con MQTT

MQTT es el protocolo estándar para IoT. Ligero, eficiente y diseñado para conexiones inestables. Implementamos arquitecturas MQTT completas: brokers gestionados o auto-alojados, niveles de QoS, seguridad TLS, gestión de topics y bridge edge-to-cloud.

El protocolo IoT por excelencia

MQTT: comunicación eficiente entre dispositivos y la nube

MQTT (Message Queuing Telemetry Transport) es un protocolo de mensajería pub/sub diseñado para entornos con ancho de banda limitado, alta latencia o conexiones inestables. Un mensaje MQTT puede ocupar tan solo 2 bytes de overhead, frente a los cientos de bytes de una petición HTTP. Esto lo convierte en el protocolo ideal para dispositivos IoT con baterías y conectividad limitada.

El modelo pub/sub de MQTT desacopla completamente a los productores de datos (dispositivos) de los consumidores (aplicaciones, dashboards, sistemas de alertas). Un dispositivo publica datos en un topic; cualquier número de suscriptores puede recibir esos datos sin que el dispositivo sepa quién los consume. Esto permite añadir nuevos consumidores (un nuevo dashboard, un sistema de alertas, un pipeline de ML) sin modificar el firmware de los dispositivos.

En Soamee implementamos MQTT como protocolo principal en nuestros proyectos IoT. Lo usamos en la plataforma de Spherag para la transmisión de datos de sensores agrícolas, y en múltiples proyectos de IoT industrial para monitorización y control de dispositivos.

Trabajamos con brokers gestionados como AWS IoT Core y brokers auto-alojados como EMQX y Mosquitto. La elección depende de los requisitos de escala, coste, control y compliance de cada proyecto.

2 bytes

Overhead mínimo

TLS/mTLS

Seguridad nativa

3 QoS

Niveles de garantía

LWT

Detección desconexión

Niveles de QoS

Calidad de servicio adaptada a cada caso

MQTT ofrece tres niveles de QoS que balancean fiabilidad y eficiencia. Elegir el nivel correcto es clave para optimizar el rendimiento.

QoS 0: At most once

Fire and forget. El mensaje se envía una vez sin confirmación. El más rápido y ligero. Ideal para telemetría de alta frecuencia donde perder un dato puntual no es crítico (temperatura cada segundo, posición GPS). Mínimo overhead de red y batería.

QoS 1: At least once

Entrega garantizada con posibles duplicados. El emisor reenvía el mensaje hasta recibir confirmación (PUBACK). El nivel más usado en IoT industrial. Ideal para datos de sensores donde la pérdida no es aceptable pero un duplicado se puede gestionar (alertas, lecturas de consumo).

QoS 2: Exactly once

Entrega garantizada sin duplicados. Handshake de 4 pasos que asegura que cada mensaje se recibe exactamente una vez. Mayor overhead de red y latencia. Reservado para operaciones críticas donde un duplicado causaría problemas (comandos de actuadores, transacciones, actualizaciones de firmware).

Capacidades MQTT

Lo que implementamos con MQTT

Seguridad TLS/mTLS

Cifrado de todas las comunicaciones MQTT con TLS 1.2/1.3. Autenticación mutua (mTLS) con certificados X.509 para verificar la identidad tanto del dispositivo como del broker. Rotación automática de certificados y revocación inmediata de dispositivos comprometidos. Autorización granular por topic para controlar qué dispositivo puede publicar o suscribirse a qué datos.

Broker setup y clustering

Desplegamos y configuramos brokers MQTT según los requisitos del proyecto. EMQX para alta escala (millones de conexiones) con clustering nativo. Mosquitto para proyectos más pequeños o edge gateways. AWS IoT Core como servicio gestionado. Configuración de bridge entre brokers para arquitecturas edge-to-cloud con sincronización de datos.

Diseño de topics

Diseño de la jerarquía de topics MQTT adaptada al dominio del proyecto. Patrones como {org}/{site}/{device-type}/{device-id}/{data-type} que permiten suscripciones por wildcard (# y +) para consumir datos de forma flexible. Shared subscriptions para distribuir la carga entre múltiples consumidores.

Bridge edge-to-cloud

Arquitectura de bridge entre broker local en el edge (Mosquitto en gateway) y broker cloud (AWS IoT Core, EMQX Cloud). Los datos se publican localmente con baja latencia, se almacenan en buffer durante desconexiones y se sincronizan con el cloud cuando hay conectividad. Store-and-forward para garantizar zero data loss.

¿Necesitas implementar MQTT en tu proyecto IoT?

Consultoría gratuita →
Ecosistema MQTT

Brokers y herramientas que utilizamos

AWS IoT Core EMQX Mosquitto HiveMQ MQTT.js Paho MQTT Eclipse Mosquitto MQTT 5.0 MQTT 3.1.1 Node.js Python C/C++ ESP32 Raspberry Pi LoRaWAN Docker Kubernetes TLS 1.3 X.509 Grafana
FAQ

Preguntas frecuentes sobre MQTT

MQTT 5.0 o MQTT 3.1.1?
MQTT 5.0 añade funcionalidades importantes: propiedades de usuario en mensajes, códigos de respuesta mejorados, topic alias para reducir overhead, message expiry, shared subscriptions y flow control. Recomendamos MQTT 5.0 para proyectos nuevos si el broker y los dispositivos lo soportan. AWS IoT Core soporta MQTT 5.0 desde 2023. Para dispositivos muy restringidos o brokers legacy, MQTT 3.1.1 sigue siendo perfectamente válido.
MQTT o HTTP para mi proyecto IoT?
MQTT cuando tienes dispositivos con batería, conectividad limitada, necesitas datos en tiempo real o comunicación bidireccional (comandos al dispositivo). HTTP cuando el dispositivo tiene recursos abundantes, envía datos con poca frecuencia (una vez al día) o necesitas integración simple con APIs existentes. Para la mayoría de proyectos IoT, MQTT es la mejor opción. Muchos proyectos usan ambos: MQTT para dispositivos y HTTP para la API del backend.
Cuántas conexiones simultáneas soporta un broker MQTT?
Depende del broker. AWS IoT Core no tiene límite práctico (es un servicio gestionado que escala automáticamente). EMQX en cluster puede manejar más de 100 millones de conexiones simultáneas. Un solo nodo de Mosquitto puede gestionar 100.000-200.000 conexiones con el hardware adecuado. Para la mayoría de proyectos industriales, cualquiera de estas opciones es más que suficiente. La clave está en dimensionar el pipeline de procesamiento, no el broker.
Empecemos

Implementa MQTT en tu proyecto IoT

Te ayudamos a elegir el broker adecuado, diseñar la arquitectura de topics y construir el pipeline MQTT completo.

Agenda call gratuita →