mqtt vs paho-mqtt vs aedes
Comparaison des packages npm "Protocoles de Messagerie MQTT"
1 An
mqttpaho-mqttaedesPackages similaires:
Qu'est-ce que Protocoles de Messagerie MQTT ?

Les bibliothèques MQTT en JavaScript permettent aux applications de communiquer via le protocole MQTT (Message Queuing Telemetry Transport), un protocole léger de messagerie publish/subscribe conçu pour les environnements à bande passante limitée. Ces bibliothèques facilitent l'envoi et la réception de messages entre les clients et les courtiers MQTT, ce qui les rend idéales pour les applications IoT, les systèmes de messagerie en temps réel et les solutions de communication distribuée. mqtt est une bibliothèque complète et largement adoptée pour les clients MQTT, tandis que paho-mqtt est une implémentation légère par la fondation Eclipse, et aedes est un courtier MQTT écrit en Node.js, conçu pour être rapide et extensible.

Tendance de téléchargements npm
Classement des GitHub Stars
Détail des statistiques
Package
Téléchargements
Stars
Taille
Issues
Publication
Licence
mqtt1,193,7278,7071.86 MB41il y a 3 moisMIT
paho-mqtt162,6531,171-101il y a 6 ansEPL-1.0
aedes79,0161,820312 kB79il y a 6 moisMIT
Comparaison des fonctionnalités: mqtt vs paho-mqtt vs aedes

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);
    });
    
Comment choisir: mqtt vs paho-mqtt vs aedes
  • mqtt:

    Choisissez mqtt si vous avez besoin d'une bibliothèque client MQTT robuste et bien prise en charge pour vous connecter à n'importe quel courtier MQTT. Elle offre une large gamme de fonctionnalités, y compris la gestion des connexions, la qualité de service (QoS) et le support des protocoles sécurisés.

  • paho-mqtt:

    Choisissez paho-mqtt si vous recherchez une bibliothèque client MQTT légère et facile à utiliser, particulièrement adaptée aux applications Web. Elle est développée par la fondation Eclipse et offre une bonne compatibilité avec les navigateurs.

  • aedes:

    Choisissez aedes si vous avez besoin d'un courtier MQTT léger et hautement extensible que vous pouvez exécuter dans votre propre environnement Node.js. Il est idéal pour les applications qui nécessitent un contrôle total sur la gestion des connexions et des messages.