Type de Bibliothèque
- mqtt:
mqtt
est une bibliothèque client MQTT qui permet aux applications de se connecter à un courtier MQTT, de publier des messages et de s'abonner à des sujets. Elle est conçue pour être utilisée dans des environnements Node.js et navigateur. - paho-mqtt:
paho-mqtt
est également une bibliothèque client MQTT, mais elle se concentre sur la fourniture d'une API simple et légère pour les applications Web. Elle est particulièrement adaptée aux environnements où la taille de la bibliothèque et la simplicité d'utilisation sont des préoccupations. - aedes:
aedes
est un courtier MQTT, ce qui signifie qu'il gère les connexions des clients, les publications et les abonnements. Il est conçu pour être exécuté sur un serveur Node.js et peut être intégré dans des applications pour gérer la communication MQTT.
Extensibilité
- mqtt:
La bibliothèque
mqtt
est extensible dans une certaine mesure, mais elle est principalement conçue comme une solution tout-en-un pour la communication MQTT. Les développeurs peuvent étendre ses fonctionnalités en créant des classes personnalisées ou en utilisant des événements, mais cela nécessite une compréhension approfondie de son architecture. - paho-mqtt:
paho-mqtt
offre une certaine extensibilité, mais elle est limitée par rapport àaedes
. Les développeurs peuvent étendre les classes et ajouter des fonctionnalités, mais la bibliothèque est principalement conçue pour être utilisée telle quelle, avec un minimum de personnalisation. - aedes:
aedes
est hautement extensible, permettant aux développeurs d'ajouter des fonctionnalités personnalisées, telles que des plugins pour la gestion des utilisateurs, l'authentification, et plus encore. Sa conception modulaire facilite l'ajout de nouvelles fonctionnalités sans modifier le code de base.
Support des Navigateurs
- mqtt:
La bibliothèque
mqtt
peut être utilisée dans les navigateurs ainsi que dans Node.js, ce qui en fait une solution polyvalente pour les applications MQTT. Elle prend en charge les connexions sécurisées (TLS) et fonctionne bien dans les environnements à bande passante limitée. - paho-mqtt:
paho-mqtt
est spécialement conçu pour les applications Web et offre une excellente compatibilité avec les navigateurs. Il est léger et facile à intégrer dans les projets Web, ce qui en fait un choix idéal pour les applications basées sur le navigateur. - aedes:
aedes
étant un courtier MQTT, il n'est pas conçu pour être exécuté dans un navigateur. Il doit être déployé sur un serveur Node.js, où il gère les connexions des clients MQTT.
Exemple de Code
- mqtt:
Exemple de client MQTT avec
mqtt
const mqtt = require('mqtt'); const client = mqtt.connect('mqtt://broker.hivemq.com'); client.on('connect', () => { console.log('Connecté au courtier MQTT'); client.subscribe('test/topic', (err) => { if (!err) { client.publish('test/topic', 'Hello MQTT!'); } }); }); client.on('message', (topic, message) => { console.log(`Message reçu sur ${topic}: ${message.toString()}`); });
- paho-mqtt:
Exemple de client MQTT avec
paho-mqtt
<!DOCTYPE html> <html> <head> <script src='https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.1.0/paho-mqtt-min.js'></script> <script> const client = new Paho.MQTT.Client('broker.hivemq.com', 8000, 'clientId'); client.onConnect = () => { console.log('Connecté au courtier MQTT'); client.subscribe('test/topic'); client.send('test/topic', 'Hello MQTT from Paho!'); }; client.onMessageArrived = (message) => { console.log('Message reçu:', message.payloadString); }; client.connect(); </script> </head> <body></body> </html>
- aedes:
Exemple de courtier MQTT avec
aedes
const aedes = require('aedes')(); const server = require('net').createServer(aedes.handle); server.listen(1883, () => { console.log('Courtier MQTT en cours d\'exécution sur le port 1883'); }); // Gestion des événements aedes.on('client', (client) => { console.log('Client connecté:', client.id); }); aedes.on('publish', (packet, client) => { console.log('Message publié:', packet.payload.toString(), 'sur le sujet:', packet.topic); });