Tipus | Protocol |
---|---|
Versió inicial | 1999 |
Versió estable | 3.1 / 2013 |
Llicència | estàndard ISO |
Part de | Internet de les coses |
Característiques tècniques | |
Sistema operatiu | Multiplataforma |
Equip | |
Creador/s | Andy Stanford-Clark i Arlen Nipper de Cirrus Link |
Més informació | |
Lloc web | mqtt.org |
Stack Exchange | Etiqueta |
| |
MQTT[1] (Message Queuing Telemetry Transport) és un protocol de missatgeria publish-subscribe basat en el protocol TCP/IP. Inicialment desenvolupat per Andy Stanford-Clark (IBM) i Arlen Nipper (EuroTech), i després publicat com a codi obert. MQTT v3.1.1 és ara un estàndard d'OASIS, l'especificació d'aquest protocol és disponible en HTML i PDF.[2][3]
Propietats de MQTT :
MQTT defineix un petit conjunt de missatges : [4]
Tipus de missatge | Valor | Descripció |
---|---|---|
CONNECT | 1 | Petició del client per a connectar-se al servidor (vegeu Fig1) |
CONNACK | 2 | Reconeixement de la connexió |
PUBLISH | 3 | Edició missatge |
PUBACK | 4 | Reconeixement de l'edició |
PUBREC | 5 | Edició rebuda (part 1) |
PUBREL | 6 | Edició alliberada (part 2) |
PUBCOMP | 7 | Edició completa (part 3) |
SUBSCRIBE | 8 | Petició de subscripció de client |
SUBACK | 9 | Reconeixement de subscripció |
UNSUBSCRIBE | 10 | Petició de desubscripció de client |
UNSUBACK | 11 | Reconeixement de desubscripció |
PINGREQ | 12 | Petició de PING |
PINGRESP | 13 | Resposta de PING |
DISCONNECT | 14 | Client deconnectant |
Benchmarking de mida de trama: [5]
Acció | Protocol HTTP | Protocol MQTT | Relació HTTP/MQTT |
---|---|---|---|
Rebre una unitat de dades (la mínima) | 320 bytes | 69 bytes | 4,6 |
Enviar una unitat de dades (la mínima) | 320 bytes | 47 bytes | 6,8 |
Rebre 100 unitats de dades (la mínima) | 12600 bytes | 2445 bytes | 5,1 |
Enviar 100 unitats de dades (la mínima) | 14100 bytes | 2126 bytes | 6,6 |
Benchmarking de característiques :
Característica | Protocol HTTP | Protocol MQTT |
---|---|---|
Model | Centrat a les dades | Centrat al document |
Accions | GET, POST, DELETE
especificació complexa |
Pub/Sub/Unsub
especificació senzilla |
Mida dels missatges | Missatges llargs | Missatges curts |
Quality of service | No, cal implementar en
la capa d'aplicació |
3 nivells : el millor, almenys 1 cop
i exactament 1 cop |
Distribució de dades | NO, només 1 a 1 | Sí, 1 a n |
Existeixen molts brokers MQTT disponibles, varien en la seua funcionalitat, alguns d'ells ofereixen funcionalitats addicionals.
Els principals brokers de codi obert són:
Un estudi comparatiu de les característiques d'aquests diferents brokers (ActiveMQ, Apollo, JoramMQ, Mosquitto i RabbitMQ) es troba disponible aquí Arxivat 2016-03-04 a Wayback Machine..
Nombroses biblioteques estan disponibles per programar clients MQTT, per a la majoria dels llenguatges (C, C++, Java, JavaScript, PHP, Python, etc.) i per a la majoria de les plataformes (Linux, Windows, iOS, Android, Arduino, etc.).[7]
El projecte Eclipse/Paho ofereix implementacions de codi obert dels protocols de missatgeria oberts i estàndards destinats a les aplicacions noves i emergents per a la comunicació M2M (màquina-a-màquina) i de l'Internet de les coses (IoT).
En el món real, hi ha nombrosos projectes que utilitza el protocol MQTT :