Nous allons utiliser Socket.IO qui est une bibliothèque construite sur le protocole WebSocket mais qui offre des possibilité étendus tel que la reconnexion automatique du client.
Nous allons implémenter cette bibliothèque en JavaScript avec Node.js qui est un excellent language très utilisé pour ce genre de serveur web.
## Protocole mqtt :
MQTT est un protocole de messagerie push-subscribe basé sur le protocole TCP/IP. Dans l’architecture MQTT, il existe deux types de systèmes: les clients et les brokers. Le broker est le serveur avec lequel les clients communiquent. Il reçoit les communications des clients et les retransmet à d’autres clients. Les clients ne communiquent pas directement entre eux, mais par l’intermédiaire du broker. Chaque client peut être soit éditeur, soit abonné, soit les deux.
MQTT est un protocole orienté événements. Afin de minimiser le nombre de transmissions, les données ne sont envoyées ni à intervalles définis, ni en continu. Un client publie uniquement quand il a des informations à transmettre, et un broker n’envoie des informations aux abonnés que quand il reçoit de nouvelles données.
### Problèmes :
Connexion avec le broker quand l'application est fermé, notification compliquées.