¿Qué es MQTT?

Para mi primera entrada, voy a hablaros sobre MQTT (Message Queue Telemetry Transport), un protocolo usado para la comunicación machine-to-machine (M2M) en el "Internet of Things". Este protocolo está orientado a la comunicación de sensores, debido a que consume muy poco ancho de banda y puede ser utilizado en la mayoría de los dispositivos empotrados con pocos recursos (CPU, RAM, …). Un ejemplo de uso de este protocolo es la aplicación de Facebook Messenger tanto para android y Iphone. La arquitectura de MQTT sigue una topología de estrella, con un nodo central que hace de servidor o "broker" con una capacidad de hasta 10000 clientes. El broker es el encargado de gestionar la red y de transmitir los mensajes, para mantener activo el canal, los clientes mandan periódicamente un paquete (PINGREQ) y esperan la respuesta del broker (PINGRESP). La comunicación puede ser cifrada entre otras muchas opciones.

La comunicación se basa en unos "topics" (temas), que el cliente que publica el mensaje crea y los nodos que deseen recibirlo deben subscribirse a él. La comunicación puede ser de uno a uno, o de uno a muchos. Un "topic" se representa mediante una cadena y tiene una estructura jerárquica. Cada jerarquía se separa con '/'. Por ejemplo, "edificio1/planta5/sala1/raspberry2/temperatura" o "/edificio3/planta0/sala3/arduino4/ruido". De esta forma se pueden crear jerarquías de clientes que publican y reciben datos, como podemos ver en la imagen:

作品ごとに衣装の方向性は異なり、制服風、戦闘服風、和装風など比較する視点も変わります。撮影やイベントの予定に合わせて、原神 女性キャラクター コスプレを確認しながら候補を選べます。候補を比べるほど、自分の撮りたい雰囲気に合う方向性が見えてきます。

De esta forma un nodo puede subscribirse a un "topic" concreto ("edificio1/planta2/sala0/arduino0/temperatura")  o  a varios ("edificio1/planta2/#") . Próximamente intentaré subir un tutorial como ejemplo de su uso. Web MQTT - mqtt.org