Wozu Websockets nützlich sind
Abgesehen davon, dass Websockets den Bau interaktiver Webanwendungen vereinfachen, sind sie ein ideales Instrument, um vielseitig verwendbare, betriebssystemunabhängige und nichtproprietäre Schnittstellen zu Hardware-Peripherie zu implementieren.
Grundsätzlich ist das auch über HTTP möglich. Unüberschaubar ist zum Beispiel mittlerweile die Anzahl der Projekte, bei denen Raspberry Pi oder ähnliche Kleinrechner den Zugriff auf angeschlossene Sensoren und Aktuatoren über einen darauf laufenden Webserver ermöglichen.
Im einfachsten Fall läuft dabei ein Python- oder PHP-Skript, das auf Zuruf eine Webseite erzeugt und zum Beispiel die Sensordaten darstellt und Interaktionsmöglichkeit per Webformular oder HTML-Buttons bietet. Fittere Programmierer erweitern dieses Konzept auf AJAX-Aufrufe in der erzeugten Webseite, um Daten automatisch zu aktualisieren oder implementieren eine REST-API.
Obwohl gerade Letzteres den Stand der Technik repräsentiert, haben diese HTTP-basierten Methoden einen erheblichen Nachteil: Sie sind ressourcenintensiv.
HTTP geht nur in eine Richtung
Wie bereits angesprochen, kann der Server nicht von sich aus Daten an den Client senden. Dieser muss regelmäßig beim Server anfragen, ob sich etwas geändert hat. Und das dauert: Zuerst muss die Verbindung aufgebaut werden, dann muss die eigentliche Skriptlogik durchlaufen werden und die Daten müssen verschickt werden. Das kostet nicht nur Zeit, sondern belastet auch den Server und produziert viel überflüssigen Netzwerkverkehr. Überflüssig erst recht, wenn jedes Mal die gleichen Ressourcen vom gleichen Client angefordert werden. Da sind die übertragenen Header- und Metadaten schnell umfangreicher als die Nutzdaten.
Bei Websockets wird die Verbindung dauerhaft aufrechterhalten, die Übertragung von Metadaten wird minimiert. Daten können eventbasiert übertragen werden. Das führt zu kleineren Datenmengen über das Netzwerk und geringe Serverbelastung. Was effektiv bedeutet, dass weniger Strom gebraucht wird.
Aber auch wenn der Stromspareffekt nicht im Vordergrund steht - Websockets bieten sich auch da an, wo bislang klassische Sockets zum Einsatz kamen. Denn sie sind für den Anwendungsprogrammierer nicht schwerer zu nutzen, aber automatisch netzwerkfähig. Das wird zum Beispiel bereits von Leap Motion und Tinkerforge in dieser Form genutzt.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
- ohne Werbung
- mit ausgeschaltetem Javascript
- mit RSS-Volltext-Feed
Bluetooth Low Energy und Websockets: Raspberry Pi als Schaltzentrale fürs Haus | Beispiel: Leap Motion |
Ich würde sagen hier könnte man eleganter und auch verhältnismäßig preiswert mit Zigbee...
perfekt! die Artikel sind echt zeitlos. ich werde noch ein paar Artikel nachholen.
Meine RasPis dienen einmal als AirPrint-Server für einen 15 Jahre alten Kyocera...
die guten alten Zeiten der c't, als es noch in fast jeder Ausgabe etwas zum selber...