Difference between revisions of "MQTT"

From air
Jump to navigation Jump to search
Line 13: Line 13:
   
 
== Utilisation de MQTT en Java ==
 
== Utilisation de MQTT en Java ==
  +
=== Architecture client/serveur avec MQTT ===
En premier lieu, il faut un serveur 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:
 
*===> Installer Mosquitto (http://mosquitto.org/) ou sur Ubuntu:
 
**sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
 
**sudo apt-add-repository ppa:mosquitto-dev/mosquitto-ppa
 
**sudo apt-get update
 
**sudo apt-get update
 
**sudo apt-get install mosquitto python-mosquitto
 
**sudo apt-get install mosquitto python-mosquitto
N.B: 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
+
'''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
 
Ensuite, prendre une API Java pour un client MQTT
 
*===> Voir eclipse Paho: http://www.eclipse.org/paho.
 
** Le jar utilisé (a inclure dans le classpath pour l'utiliser): http://www.eclipse.org/downloads/download.php?file=/paho/drops/org.eclipse.paho.client.mqttv3.jar
 
 
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 abonnés à ces derniers recevront les messages.
 
   
  +
=== Client ===
Pour aller plus en détails, voici un exemple d'utilisation Java avec l'API eclipse paho:
 
 
Ensuite, prendre une API Java pour un client MQTT. Il en existe plusieurs (voir http://mqtt.org/software):
*https://github.com/eclipse/paho.mqtt.java/blob/master/org.eclipse.paho.sample.mqttv3app/src/org/eclipse/paho/sample/mqttv3app/Sample.java
 
  +
Ci-dessous, la démarche à suivre pour deux d'entre eux:
  +
==== Eclipse Paho ====
 
* Le site: http://www.eclipse.org/paho
 
* Le jar a utilisé (a inclure dans le classpath pour l'utiliser): http://www.eclipse.org/downloads/download.php?file=/paho/drops/org.eclipse.paho.client.mqttv3.jar.
  +
'''/!\''' Pas d'artefact maven disponible a l'heure d'aujourd'hui !
 
* Pour aller plus en détails dans l'implémentation publisher/subscriber, voici un exemple d'utilisation Java avec cette API:
 
* https://github.com/eclipse/paho.mqtt.java/blob/master/org.eclipse.paho.sample.mqttv3app/src/org/eclipse/paho/sample/mqttv3app/Sample.java
  +
==== FuseSource MQTT ====
  +
* Le site: http://mqtt-client.fusesource.org/ ; Le GIT: https://github.com/fusesource/mqtt-client
  +
* Un artefact maven est disponible pour ce client: http://mvnrepository.com/artifact/org.fusesource.mqtt-client/mqtt-client/
  +
* Des exemples d'implémentation publisher/subscriber sont disponibles sur la page d'accueil de leur site.
   
 
==A regarder==
 
==A regarder==

Revision as of 16:47, 14 April 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).

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