Vergleich von MQTT Clients im Kontext Industrial IoT

Inhalt

In der dynamischen Natur von MQTT kann der richtige Client die Entwicklungseffizienz erheblich steigern. Dieser Artikel bietet einen Überblick über die Kriterien zur Auswahl des richtigen MQTT Clients sowie einen Vergleich existierender Lösungen. Dabei unterscheiden wir zwischen grafischen Clients und MQTT Client Bibliotheken („Software-MQTT-Clients“).

 

Grafische- vs. Software-MQTT-Clients

Grafische MQTT-Clients sind hervorragend für schnelles Debugging, Tests und die Visualisierung von Datenströmen geeignet. Diese Tools bieten eine benutzerfreundliche Oberfläche. Diese ermöglicht es Entwicklern, MQTT-Nachrichten ohne die Notwendigkeit von Code zu analysieren und Verbindungen zu MQTT-Brokern herzustellen. Software-MQTT-Clients (oder MQTT Client Bibliotheken) ermöglichen eine programmatische Steuerung. Diese können Entwickler nahtlos in bestehende Softwarelösungen integrieren, um maßgeschneiderte und hochperformante MQTT-Anwendungen zu erstellen. Sie sind ideal für geeignet für Automatisierung, skalierbare Anwendungen und die Integration in Backend-Systeme.

Die Wahl des richtigen Clients hängt von den spezifischen Anforderungen und Zielen des Projekts ab. Während grafische MQTT-Clients die Entwicklung und Fehlerbehebung erleichtern, bieten Software-Bibliotheken die Flexibilität und Skalierbarkeit, die für komplexe und umfangreiche IoT-Projekte erforderlich sind.

 

Top 5 Kriterien zur Auswahl des richtigen MQTT-Clients

Bei der Auswahl eines geeigneten MQTT-Clients, ob mit grafischer Oberfläche oder ohne, sollten die folgenden 5 Kriterien berücksichtigt werden.

Top 5 Criteria for MQTT Clients

1. Funktionalität

Die Funktionalität eines MQTT-Clients muss den Anforderungen des jeweiligen Projekts entsprechen. Wichtige Funktionen sind u.a.:

  • MQTT-Versionen: Der Client sollte die gängigen MQTT-Versionen wie 3.1.1 und 5.0 unterstützen. Dies schließt wesentliche Funktionen der jeweiligen Versionen ein.
  • QoS-Unterstützung: Quality of Service (QoS) Level sind entscheidend für die Zuverlässigkeit der Nachrichtenübertragung. Ein guter Client unterstützt alle QoS-Stufen (0, 1 und 2).
  • WebSocket-Unterstützung: MQTT over WebSocket ermöglicht den Einsatz von MQTT in webbasierten Anwendungen.
  • SSL-Unterstützung: Für sichere Verbindungen sollte der Client SSL für Einweg- und Zweiweg-SSL-Authentifizierung unterstützen.
  • Mehrere Clients: Unterstützung für gleichzeitige Verbindungen mehrerer Clients ist essenziell für skalierbare Anwendungen.

 

2. Kompatibilität und Plattformunterstützung

Ein vielseitiger MQTT-Client sollte auf verschiedenen Betriebssystemen und in unterschiedlichen Programmiersprachen nutzbar sein:

  • Cross-Platform: Der Client sollte auf Windows, Linux, macOS (und ggfs. Android und iOS) verfügbar sein.
  • Programmiersprachen-Kompatibilität: Unterstützung für gängige Programmiersprachen wie Python, Java, JavaScript, C und C++ ist wichtig, um die nahtlose Integration in bestehende Systeme zu gewährleisten.

 

3. Benutzerfreundlichkeit und Dokumentation

Die Benutzerfreundlichkeit und die Qualität der Dokumentation spielen eine entscheidende Rolle für die Effizienz der Entwicklung:

  • Ease of Use: Trotz umfangreicher Funktionen sollte der Client einfach zu bedienen sein.
  • Dokumentation und Support: Eine verständliche und ausführliche Dokumentation sowie Tutorials, Beispiele und Community-Support erleichtern die Implementierung und Fehlersuche
  • Leistungsfähigkeit und Stabilität: Ein MQTT-Client muss leistungsfähig und stabil sein, um in produktiven Umgebungen eingesetzt werden zu können.

 

4. Leistungsfähigkeit und Stabilität

Ein MQTT-Client muss leistungsfähig und stabil sein, um in produktiven Umgebungen eingesetzt werden zu können:

  • Effizienz: Der Client sollte ressourcenschonend sein und eine hohe Nachrichtenfrequenz effizient verarbeiten können.
  • Aktive Entwicklung: Regelmäßige Updates und ein aktiver Entwicklungsstatus sind wichtig, um Sicherheitslücken zu schließen und neue Funktionen bereitzustellen.

 

5. Kosten und Lizenzierung

Die Kosten und die Lizenzierungsbedingungen eines MQTT-Clients sind ebenfalls zu berücksichtigen:

  • Kostenfreie Nutzung oder Lizenzkosten: Je nach Budget und Projektanforderungen kann ein kostenfreier oder kostenpflichtiger Client in Betracht gezogen werden.
  • Lizenzbedingungen: Die Lizenzbedingungen (z.B. Open Source, kommerzielle Lizenz) sollten mit den Unternehmensrichtlinien und -anforderungen übereinstimmen.

 

 

Vergleich grafischer MQTT Clients

Im Folgenden vergleichen wir die beliebten Clients MQTTX (entwickelt von EMQ, Download Link), MQTT Explorer (entwickelt von Thomas Nordquist, Download Link) und HiveMQ WebSocket Client (entwickelt von HiveMQ, Try Out), die sich in einigen Aspekten unterscheiden.

1. Funktionalität

  • MQTTX: Unterstützt die gängigen MQTT-Versionen 3.1.1 und 5.0, QoS-Stufen 0, 1 und 2, sowie SSL/TLS-Verschlüsselung. MQTTX bietet zudem die Möglichkeit, Skripte in JavaScript auszuführen, was eine gewisse Flexibilität bei der Automatisierung von Aufgaben bietet.
  • MQTT Explorer: Ebenfalls Unterstützung für MQTT-Versionen 3.1.1 und 5.0, QoS-Stufen und SSL/TLS-Verschlüsselung. Der Fokus liegt hier jedoch stärker auf der Visualisierung und Analyse der MQTT-Nachrichten. MQTT Explorer bietet detaillierte Statistiken und die Möglichkeit, Nachrichten in Echtzeit zu beobachten und zu analysieren.
  • HiveMQ WebSocket Client: Unterstützt MQTT über WebSockets und bietet grundlegende Funktionen zur Verwaltung und Überwachung von MQTT-Verbindungen. Ideal für schnelle Tests und den Einstieg in MQTT, jedoch nicht so umfassend wie MQTTX oder MQTT Explorer in Bezug auf tiefergehende Funktionen und Analysewerkzeuge.

 

2. Plattformunterstützung

  • MQTTX: Verfügbar auf Windows, macOS, Linux sowie auf mobilen Plattformen wie Android und iOS. Diese breite Plattformunterstützung macht MQTTX zu einer flexiblen Wahl für Entwickler, die auf verschiedenen Geräten arbeiten.
  • MQTT Explorer: Hauptsächlich auf Windows, macOS und Linux verfügbar. Es gibt keine Unterstützung für mobile Plattformen, was die Nutzung auf Desktop Umgebungen beschränkt.
  • HiveMQ WebSocket Client: Da es sich um einen browserbasierten Client handelt, ist er plattformunabhängig und kann auf jedem Gerät mit einem modernen Webbrowser genutzt werden, was eine maximale Flexibilität bietet.

 

3. Benutzeroberfläche und Benutzerfreundlichkeit

  • MQTTX: Bietet eine moderne und intuitive Benutzeroberfläche, die für eine einfache Bedienung ausgelegt ist. MQTTX verfügt über eine tab-basierte Ansicht, die es Benutzern ermöglicht, mehrere Verbindungen gleichzeitig zu verwalten. Dies ist besonders nützlich für Benutzer, die häufig zwischen verschiedenen MQTT-Brokern wechseln müssen.
  • MQTT Explorer: MQTT Explorer bietet eine hierarchische Baumansicht der MQTT-Themen, die eine detaillierte Übersicht der Nachrichtenstruktur ermöglicht. Diese Ansicht ist besonders hilfreich für die Analyse und das Debugging komplexer MQTT-Nachrichten. Die Benutzeroberfläche ist ebenfalls benutzerfreundlich, aber mehr auf die tiefgehende Analyse der Daten ausgelegt.
  • HiveMQ WebSocket Client: Dieser Client bietet eine einfach zu bedienende Weboberfläche, die speziell für die Nutzung von MQTT über WebSockets konzipiert ist. Die Benutzeroberfläche ist schlank und für schnelle Tests und Verbindungen ausgelegt, jedoch weniger für tiefergehende Analysen geeignet.

 

4. Leistungsfähigkeit und Stabilität

  • MQTTX ist ressourcenschonend und verarbeitet hohe Nachrichtenfrequenzen effizient. Es erhält regelmäßige Updates und profitiert von der Community-Unterstützung durch EMQ.
  • MQTT Explorer ist für die Visualisierung von Datenströmen optimiert, hat jedoch bei hohen Frequenzen leichte Leistungseinbußen. Die Community bietet regelmäßige Updates und sorgt für eine stabile und zuverlässige Wartung.
  • Der HiveMQ WebSocket Client ist ressourcenschonend und effizient. HiveMQ sorgt für regelmäßige Updates und bietet aktive Community-Unterstützung.

 

Fazit im Vergleich grafischer MQTT Clients

Zusammenfassend ist MQTTX ideal für Benutzer, die eine plattformübergreifende und benutzerfreundliche Lösung für JavaScript-Automatisierungsaufgaben suchen. MQTT Explorer eignet sich perfekt für Entwickler, die detaillierte Analyse- und Visualisierungswerkzeuge für MQTT-Nachrichten benötigen. HiveMQ WebSocket Client hingegen bietet eine schnelle und einfache Möglichkeit, MQTT-Verbindungen über WebSockets zu testen und zu verwalten, ideal für schnelle Tests im Browser.

 

 

Vergleich von Software-MQTT-Clients

Im Folgenden ein Vergleich der Software-MQTT-Clients MQTT.js (Installation Guide), HiveMQ MQTT Client (GitHub) und M2Mqtt C# Library (GitHub) hinsichtlich ihrer wichtigsten Eigenschaften.

 

1. Funktionalität

Alle drei Clients – mqttjs/MQTT.js, HiveMQ MQTT Client und M2Mqtt C# Library – unterstützen die gängigen MQTT-Versionen 3.1.1 und 5.0 und bieten umfassende QoS-Unterstützung für alle Level (0, 1 und 2). Zudem unterstützen sie SSL/TLS für sichere Verbindungen und können mehrere gleichzeitige Verbindungen verwalten. Während die M2Mqtt C# Library keine direkte Unterstützung für MQTT over WebSocket bietet, verfügen mqttjs/MQTT.js und der HiveMQ MQTT Client über diese Funktionalität, was sie ideal für webbasierte Anwendungen macht.

 

2. Plattformunterstützung

  • mqttjs/MQTT.js: Dieser Client ist plattformübergreifend und kann auf Windows, macOS, Linux sowie in Browsern verwendet werden. Grund hierfür ist, dass der Client in JavaScript geschrieben ist. Dies macht ihn besonders flexibel für die Integration in verschiedenste Umgebungen.
  • HiveMQ MQTT Client: Der HiveMQ MQTT Client ist ebenfalls plattformübergreifend und unterstützt Windows, macOS und Linux. Dabei bietet der Client SDKs für verschiedene Programmiersprachen, was die Integration in diverse Entwicklungsumgebungen erleichtert.
  • M2Mqtt C# Library: Die M2Mqtt C# Library ist primär für die Windows-Plattform entwickelt und integriert sich nahtlos in C#-basierte Entwicklungsumgebungen. Sie kann auch auf anderen Plattformen verwendet werden, auf denen das .NET Framework oder .NET Core verfügbar sind.

 

3. Benutzerfreundlichkeit und Dokumentation

  • mqttjs/MQTT.js: mqttjs/MQTT.js bietet eine gute Benutzerfreundlichkeit mit klarer und ausführlicher Dokumentation. Dabei ist die Community-Unterstützung gut, es gibt viele Tutorials und Beispiele, die den Einstieg erleichtern.
  • HiveMQ MQTT Client: Der HiveMQ MQTT Client zeichnet sich durch eine benutzerfreundliche API und umfangreiche Dokumentation aus. Es gibt viele Tutorials, Beispiele und eine aktive Community, die bei der Implementierung und Fehlersuche unterstützt.
  • M2Mqtt C# Library: Die M2Mqtt C# Library ist gut dokumentiert und bietet zahlreiche Beispiele, die Entwicklern den Einstieg erleichtern. Dabei ist die Benutzerfreundlichkeit hoch, besonders für Entwickler, die mit der .NET-Umgebung vertraut sind.

 

4. Leistungsfähigkeit und Stabilität

Alle drei Clients – mqttjs/MQTT.js, HiveMQ MQTT Client und M2Mqtt C# Library – zeichnen sich durch ihre hohe Leistungsfähigkeit und Stabilität aus. Sie sind in der Lage, hohe Nachrichtenfrequenzen effizient zu verarbeiten. Zudem werden alle drei Clients regelmäßig aktualisiert und weiterentwickelt, wodurch ihre Stabilität und Sicherheit kontinuierlich gewährleistet bleibt.

 

5. Kosten und Lizenzierung

  • mqttjs/MQTT.js & M2Mqtt C# Library: Die beiden Clients sind Open Source und kostenlos verfügbar. Dies macht sie zu einer attraktiven Option für Projekte mit begrenztem Budget macht. Dabei sind die Lizenzbedingungen mit den meisten Unternehmensrichtlinien kompatibel und ermöglichen eine flexible Nutzung in verschiedenen Projekten.
  • HiveMQ MQTT Client: Der HiveMQ MQTT Client bietet sowohl kostenfreie als auch kommerzielle Lizenzen an. Während die kostenfreie Version für kleinere Projekte geeignet ist, bietet die kommerzielle Lizenz umfangreichere Funktionen und Support.

 

Fazit im Vergleich von Software-MQTT-Clients

Im Vergleich von MQTT Clients, ist MQTT.js ideal für webbasierte Anwendungen und plattformübergreifende Projekte dank umfassender JavaScript-Unterstützung. Dagegen ist der HiveMQ MQTT Client gut geeignet für Entwickler, die eine vielseitige Plattform- und Sprachunterstützung und eine benutzerfreundliche API und umfassende Dokumentation benötigen. Die M2Mqtt C# Library hingegen ist optimal für Windows-basierte Projekte und .NET-Entwicklungen. Dabei sind MQTT.js und M2Mqtt jeweils kostenfrei und Open Source, HiveMQ gibt es sowohl als kostenlose als auch kommerzielle Lizenz.

Über i-flow: i-flow ist ein Unternehmen für industrielle Software mit Sitz in Süddeutschland. Wir bieten produzierenden Unternehmen die weltweit intuitivste Software zur Vernetzung von Fabriken. Täglich über 400 Millionen Datenoperationen in produktionskritischer Umgebung demonstrieren nicht nur die Skalierbarkeit der Software, sondern auch das tiefe Vertrauen, das unsere Kunden in i-flow setzen. Unser Erfolg basiert auf enger Zusammenarbeit mit Kunden und Partnern weltweit, darunter namhafte Fortune-500-Unternehmen und Branchenführer wie Bosch.

Jetzt selbst ausprobieren - Kostenlose Testversion

Überzeugen Sie sich in einem Test selbst von den unbegrenzten Möglichkeiten, die Sie mit i-flow erhalten. Jetzt 30 Tage kostenfrei testen, auf Ihren Systemen.

Ihre Frage wurde nicht be­antwortet? Kontaktieren Sie uns.

Ihr Kontakt:

Marieke Severiens (i-flow GmbH)
content@i-flow.io