Typ
- mqtt:
mqtt
ist eine MQTT-Client-Bibliothek, die es Anwendungen ermöglicht, sich mit einem MQTT-Broker zu verbinden, Nachrichten zu veröffentlichen und zu abonnieren. - paho-mqtt:
paho-mqtt
ist eine plattformübergreifende MQTT-Client-Bibliothek, die sowohl für Web- als auch für mobile Anwendungen geeignet ist. Sie ermöglicht die Kommunikation mit MQTT-Brokern über eine einfache API. - aedes:
aedes
ist ein MQTT-Broker, der in Node.js ausgeführt wird. Er ermöglicht das Empfangen und Weiterleiten von Nachrichten zwischen MQTT-Clients.
Leistung
- mqtt:
Die Leistung der
mqtt
-Bibliothek hängt von der Implementierung des Clients und des Brokers ab. Sie ist jedoch für die meisten Anwendungen optimiert und kann eine große Anzahl von Nachrichten effizient verarbeiten. - paho-mqtt:
paho-mqtt
bietet eine zuverlässige Leistung für Web- und mobile Anwendungen. Sie ist jedoch möglicherweise nicht so leistungsfähig wieaedes
für Anwendungen mit extrem hohen Anforderungen an die Skalierbarkeit. - aedes:
aedes
ist für hohe Leistung und Skalierbarkeit ausgelegt. Er kann Tausende von gleichzeitigen Verbindungen mit geringer Latenz verarbeiten, was ihn ideal für IoT-Anwendungen macht.
API
- mqtt:
Die
mqtt
-Bibliothek bietet eine umfassende API für die Interaktion mit MQTT-Brokern. Sie unterstützt alle MQTT-Funktionen, einschließlich QoS, Retained Messages und Last Will and Testament. - paho-mqtt:
paho-mqtt
bietet eine einfache und intuitive API für die MQTT-Kommunikation. Sie ist besonders benutzerfreundlich für Entwickler, die schnell mit der Integration von MQTT in ihre Anwendungen beginnen möchten. - aedes:
aedes
bietet eine flexible und anpassbare API für die Implementierung von MQTT-Broker-Funktionen. Sie ermöglicht Entwicklern, die Broker-Logik nach ihren Bedürfnissen zu gestalten.
Sicherheit
- mqtt:
Die
mqtt
-Bibliothek unterstützt sichere Verbindungen über TLS/SSL, was eine sichere Kommunikation zwischen Clients und Brokern ermöglicht. - paho-mqtt:
paho-mqtt
unterstützt ebenfalls sichere Verbindungen über TLS/SSL und bietet Funktionen zur Authentifizierung von Benutzern. - aedes:
aedes
unterstützt die Implementierung von Sicherheitsfunktionen wie Authentifizierung und Autorisierung, aber die Implementierung dieser Funktionen liegt in der Verantwortung des Entwicklers.
Beispielcode
- mqtt:
Ein einfaches Beispiel für die Verwendung der
mqtt
-Bibliothek als Client:const mqtt = require('mqtt') const client = mqtt.connect('mqtt://broker.hivemq.com') client.on('connect', () => { console.log('Verbunden mit dem Broker') client.subscribe('test/topic', () => { console.log('Abonniert das Thema') client.publish('test/topic', 'Hallo MQTT!') }) }) client.on('message', (topic, message) => { console.log(`Nachricht empfangen: ${message.toString()}`) })
- paho-mqtt:
Ein einfaches Beispiel für die Verwendung von
paho-mqtt
in einer Webanwendung:<!DOCTYPE html> <html> <head> <title>MQTT mit Paho</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/paho-mqtt/1.1.0/paho-mqtt-min.js"></script> </head> <body> <script> const client = new Paho.MQTT.Client('broker.hivemq.com', 8000, 'clientId') client.onConnect = () => { console.log('Verbunden mit dem Broker') client.subscribe('test/topic') client.publish('test/topic', 'Hallo von Paho!') } client.onMessageArrived = (message) => { console.log(`Nachricht empfangen: ${message.payloadString}`) } client.connect({ onSuccess: client.onConnect }) </script> </body> </html>
- aedes:
Ein einfaches Beispiel für die Verwendung von
aedes
als MQTT-Broker:const Aedes = require('aedes') const server = require('net').createServer(aedes.handle) const port = 1883 const aedes = new Aedes() server.listen(port, () => { console.log(`MQTT-Broker läuft auf Port ${port}`) })