Difference between revisions of "MQTT"

From air
Jump to navigation Jump to search
Line 1: Line 1:
 
MQ Telemetry Transport (MQTT) est un protocole de transport de données pour le M2M pour des réseaux à faible débit. MQTT suit le pattern publish-subscribe entre le capteur et un ou plusieurs puits de collecte (ie M2M box, back office, ...).
 
MQ Telemetry Transport (MQTT) est un protocole de transport de données pour le M2M pour des réseaux à faible débit. MQTT suit le pattern publish-subscribe entre le capteur et un ou plusieurs puits de collecte (ie M2M box, back office, ...).
 
Les messages échangés sont encodés en binaire ([http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/MQTT_V3.1_Protocol_Specific.pdf spec 3.1]).
 
Les messages échangés sont encodés en binaire ([http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/MQTT_V3.1_Protocol_Specific.pdf spec 3.1]).
  +
  +
Les grands principes sont aussi décrits ici : http://mosquitto.org/man/mqtt-7.html
   
 
MQTT a été proposé à la [https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=mqtt standardisation] à l'[[OASIS]].
 
MQTT a été proposé à la [https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=mqtt standardisation] à l'[[OASIS]].

Revision as of 11:49, 17 August 2013

MQ Telemetry Transport (MQTT) est un protocole de transport de données pour le M2M pour des réseaux à faible débit. MQTT suit le pattern publish-subscribe entre le capteur et un ou plusieurs puits de collecte (ie M2M box, back office, ...). Les messages échangés sont encodés en binaire (spec 3.1).

Les grands principes sont aussi décrits ici : http://mosquitto.org/man/mqtt-7.html

MQTT a été proposé à la standardisation à l'OASIS.

API, Logiciels, Middleware

Node.js

Utilisation de MQTT en Java

Architecture client/serveur avec MQTT

Voici l'architecture d'un exemple d'utilisation:

  • Lancer le serveur sur une IP + port.
  • Créer un "subscriber" qui va se connecter au serveur et s'abonner à un ou plusieurs "topic(s)"
  • Créer un "publisher" qui va se connecter au serveur et créer des messages dans divers topics. Les subscribers à ces derniers recevront les messages.

Plus de détails sont donnés dans les parties ci-dessous.

Serveur

En premier lieu, il faut un serveur MQTT

  • ===> Installer Mosquitto (http://mosquitto.org/) ou sur Ubuntu:
    • sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
    • sudo apt-get update
    • sudo apt-get install mosquitto python-mosquitto

NOTE: Il existe un serveur MQTT publique et gratuit (évitant l'installation) fourni par eclipse: m2m.eclipse.org lancé sur le port 1883 ; Ne marche pas avec le WiFi de la fac à cause d'un blocage des ports

Client

Ensuite, prendre une API Java pour un client MQTT. Il en existe plusieurs (voir http://mqtt.org/software): Ci-dessous, la démarche à suivre pour deux d'entre eux:

Eclipse Paho

/!\ Pas d'artefact maven disponible a l'heure d'aujourd'hui !

FuseSource MQTT

A regarder