© tatianasun/Shutterstock.com
MQTT mit JavaScript

Auf den Spuren von Ted Faison


Bei großen oder kostenintensiven Deployments mag ein von Hand entwickeltes Protokoll Kosten sparen. Insbesondere bei kleineren Installationen ist es jedoch im Interesse der Aufwandsvermeidung oftmals vernünftiger, auf eine vorgefertigte Implementierung zu setzen.

Das vor wenigen Wochen in Version 5 erschienene MQTT ist ein Klassiker im Feld der eventorientierten Protokolle. Es implementiert die beispielsweise in Ted Faisons Klassiker „Event-Based Programming“ beschriebene Event-Architektur und ermöglicht zudem die mit Vorteilen verbundene Benutzung einer reduzierten Kopplung und besticht durch eine einfache Wartbarkeit. MQTT galt als Quasistandard im Embedded-Bereich – es gab kaum einen Prozessrechner, für den es nicht ein mehr oder weniger gut entwickeltes SDK gab. Wer mit JavaScript arbeitet, hatte bisher allerdings das Nachsehen. Das von Adam Rudd, Matteo Collina und Maxime Agor entwickelte MQTT.js möchte diese Lücke schließen. In diesem Artikel werfen wir einen kurzen Blick auf die vielfältigen Möglichkeiten.

Infrastrukturelles

Auch wenn der eine oder andere nun einen Leserbrief schreibt: MQTT 5.0 spielt zum Zeitpunkt der Drucklegung dieses Hefts nur eine sehr untergeordnete Rolle. Serveranbieter haben zwar Absichtserklärungen veröffentlicht, die neue Version des Protokolls irgendwann zu unterstützen – im Moment arbeiten allerdings so gut wie alle praktischen Implementierungen mit der Vorgängerversion 3.1.1. Problematisch ist, dass die von den meisten Linux-Distributionen angebotene Version des quelloffenen Servers Mosquitto extrem alt ist und mit aktuellen Clients nicht zusammenarbeiten kann. Wer als Server eine X86-Maschine benutzt, kann das Problem durch Einbinden eines zusätzlichen Repositorys umgehen:

sudo add-apt-repository ppa:mosquitto-dev/mosquitto-ppa sudo apt-get update sudo apt-get install mosquitto mosquitto-clients

Diese für Linux-Nutzer standardisiert erscheinende Befehlsfolge ist insofern hakelig, als das Repository keine Pakete für alternative Prozessorarchitekturen bereithält. Wer seinen MQTT-Server beispielsweise auf einem ARM-basierten Prozessrechner hosten möchte, muss den Code von Hand kompilieren. Problematisch ist hierbei die Erfordernis, divere Bibliotheken für WebSockets und Co. bereitzuhalten.

Da dieser Artikel nicht in eine Erklärung von Unix-Administration ausarten soll, gehen wir in den folgenden Schritten davon aus, dass eine korrekt konfigurierte MQTT-Instanz unter der IP-Adresse 192.168.1.106 zum Einsatz bereitsteht. ...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang