Cuándo Usar MQTT en Lugar de HTTP para APIs

Ashley Innocent

Ashley Innocent

13 March 2026

Cuándo Usar MQTT en Lugar de HTTP para APIs

Apidog para empresas

Despliegue local

SSO & RBAC

Conforme con SOC 2

Explorar Apidog Enterprise

En resumen

Utiliza MQTT para dispositivos IoT con batería limitada, redes poco fiables o patrones de mensajería pub-sub. Utiliza HTTP para API web/móviles estándar. MQTT usa cabeceras de 2 bytes frente a los más de 100 bytes de HTTP, lo que lo hace ideal para dispositivos con restricciones. Modern PetstoreAPI implementa MQTT para collares de seguimiento de mascotas y comederos inteligentes.

Introducción

Tu collar de seguimiento de mascotas necesita enviar actualizaciones de ubicación cada 5 minutos. Funciona con una pila de botón que debería durar 6 meses. Usando HTTP, la pila se agota en 2 semanas. Usando MQTT, dura los 6 meses completos.

HTTP es estándar para las API, pero está diseñado para navegadores web, no para dispositivos IoT. MQTT (Message Queuing Telemetry Transport) fue construido para dispositivos con restricciones, ancho de banda limitado y redes poco fiables.

Modern PetstoreAPI utiliza HTTP para aplicaciones web y móviles, pero MQTT para dispositivos IoT: collares de seguimiento de mascotas, comederos inteligentes y monitores de salud.

💡
Si estás construyendo o probando API IoT, Apidog soporta pruebas MQTT junto con HTTP. Puedes probar patrones pub-sub, validar formatos de mensajes y simular fallos de red.
botón

En esta guía, aprenderás cuándo MQTT supera a HTTP, verás ejemplos reales de Modern PetstoreAPI y descubrirás cómo elegir el protocolo adecuado para tu caso de uso.

¿Qué es MQTT?

MQTT es un protocolo de mensajería pub-sub ligero diseñado para IoT.

Cómo funciona MQTT

Los dispositivos publican mensajes en temas. Otros dispositivos se suscriben a temas:

Publisher (Pet Collar):
  Topic: pets/019b4132/location
  Payload: {"lat":37.7749,"lng":-122.4194,"battery":85}

Subscriber (Mobile App):
  Subscribe to: pets/019b4132/location
  Receives: {"lat":37.7749,"lng":-122.4194,"battery":85}

El Broker MQTT se sitúa en el centro, enrutando los mensajes de los publicadores a los suscriptores.

Características clave de MQTT

1. Cabeceras minúsculas - MQTT: 2 bytes, HTTP: 100-500 bytes

2. Conexiones persistentes - MQTT mantiene las conexiones abiertas

3. Calidad de Servicio (QoS) - QoS 0/1/2 para garantías de entrega

4. Mensaje de Última Voluntad - Mensaje enviado si el dispositivo se desconecta inesperadamente

5. Mensajes retenidos - El broker almacena el último mensaje para nuevos suscriptores

Comparación MQTT vs HTTP

Característica MQTT HTTP
Tamaño de la cabecera 2 bytes 100-500 bytes
Patrón Pub-Sub Petición-Respuesta
Conexión Persistente Por petición
Ancho de banda Muy bajo Mayor
Impacto en la batería Mínimo Significativo
Soporte del navegador Vía WebSocket Nativo

Ejemplo de ancho de banda

1000 actualizaciones de ubicación por día:

MQTT usa 8 veces menos ancho de banda.

Cuándo MQTT Gana

1. Dispositivos IoT con batería limitada

Collar de seguimiento de mascotas:

Por qué: Conexión persistente, cabeceras minúsculas, menos tiempo de radio.

2. Redes poco fiables

Dispositivos IoT celulares con cobertura irregular:

3. Comunicación de muchos a muchos

Escenario de comedero inteligente para mascotas:

Feeder 1 → pets/019b4132/feeding
Feeder 2 → pets/019b4127/feeding
App 1 → se suscribe a pets/+/feeding (todas las mascotas)
App 2 → se suscribe a pets/019b4132/feeding (una mascota)

4. Datos de sensores en tiempo real

Monitor de salud de mascotas enviando actualizaciones cada segundo:

Cuándo HTTP Gana

1. Aplicaciones web/móviles estándar

HTTP es universal:

2. Patrones de Petición-Respuesta

Obtener detalles de mascotas:

GET /pets/019b4132
200 OK
{"name":"Fluffy","species":"CAT"}

HTTP es más simple para petición-respuesta.

3. Requisitos de Caching

El caching HTTP funciona de forma predeterminada:

MQTT no tiene caching.

4. APIs RESTful

Códigos de estado, métodos y semántica HTTP:

Cómo Modern PetstoreAPI usa MQTT

Modern PetstoreAPI implementa MQTT para dispositivos IoT.

Collares de seguimiento de mascotas

El collar publica la ubicación:

Topic: pets/019b4132/location
QoS: 1 (al menos una vez)
Payload: {
  "lat": 37.7749,
  "lng": -122.4194,
  "battery": 85,
  "timestamp": "2026-03-13T10:30:00Z"
}

La aplicación móvil se suscribe:

const mqtt = require('mqtt');
const client = mqtt.connect('mqtts://mqtt.petstoreapi.com');

client.subscribe('pets/019b4132/location');

client.on('message', (topic, message) => {
  const location = JSON.parse(message);
  updateMap(location.lat, location.lng);
});

Comederos Inteligentes

El comedero se suscribe al horario:

Topic: pets/019b4132/feeding-schedule
Retained: true
Payload: {
  "times": ["08:00", "18:00"],
  "amount": 100
}

El comedero publica eventos de alimentación:

Topic: pets/019b4132/feeding-events
Payload: {
  "timestamp": "2026-03-13T08:00:15Z",
  "amount": 100,
  "dispensed": true
}

Monitores de salud

El monitor publica los signos vitales:

Topic: pets/019b4132/health
QoS: 0 (enviar y olvidar, alta frecuencia)
Payload: {
  "heartRate": 120,
  "temperature": 38.5,
  "activity": "resting"
}

Probando MQTT con Apidog

Apidog soporta pruebas MQTT junto con HTTP y otros protocolos.

Probar MQTT Pub-Sub

  1. Conectarse al broker MQTT
  2. Suscribirse a temas
  3. Publicar mensajes de prueba
  4. Validar formato de mensaje
  5. Probar niveles de QoS

Simular Fallos de Red

Comparar con HTTP

Probar la misma funcionalidad con ambos protocolos:

Conclusión

MQTT y HTTP sirven para propósitos diferentes. Utiliza MQTT para dispositivos IoT con recursos limitados. Utiliza HTTP para API web/móviles estándar.

Modern PetstoreAPI muestra cómo usar ambos: HTTP para API orientadas al usuario, MQTT para dispositivos IoT. El protocolo adecuado depende de tus restricciones, no de cuál sea "mejor".

Prueba ambos protocolos con Apidog para encontrar la mejor opción para tu caso de uso.

botón

Preguntas Frecuentes

¿Puede MQTT funcionar sobre HTTP?

MQTT puede ejecutarse sobre WebSocket, que funciona sobre HTTP. Esto ayuda con la travesía de cortafuegos pero pierde algunos beneficios de eficiencia de MQTT.

¿Cuáles son los niveles de QoS de MQTT?

¿Es seguro MQTT?

Sí, MQTT soporta cifrado TLS (MQTTS) y autenticación con nombre de usuario/contraseña. Modern PetstoreAPI usa MQTTS para todos los dispositivos IoT.

¿Pueden los navegadores usar MQTT?

Los navegadores pueden usar MQTT sobre WebSocket. Librerías como MQTT.js soportan entornos de navegador.

¿Cómo se compara MQTT con WebSocket?

MQTT es un protocolo que puede ejecutarse sobre WebSocket. WebSocket es una capa de transporte. MQTT añade características de pub-sub, QoS y específicas de IoT sobre WebSocket.

Practica el diseño de API en Apidog

Descubre una forma más fácil de construir y usar APIs

Cuándo Usar MQTT en Lugar de HTTP para APIs