Skip to end of metadata
Go to start of metadata

Websocket ist ein Kommunikationsprotokoll, das eine bidirektionale Verbindung zwischen einem Server (hier: Miniserver) und einem Client (hier: Webbrowser oder eigene Software) ermöglicht. Während bei normaler http-Kommunikation der Client immer einen Aufruf durchführen muss, um einen Status des Servers abzufragen, kann bei Websocket-Kommunikation nach dem Öffnen eines Kanals der Server dem Client eine Statusänderung ohne Anforderung mitteilen. 

Websocket-Kommunikationslogik (Punkt 2.2 der Dokumentation auf der Loxone Webseite)

Sicherheit

Die Authentifizierung der Websocket-Verbindung ist verschlüsselt. Nach der Authentifizierung ist die weitere Kommunikation jedoch unverschlüsselt. 

Kommunikationsvergleich REST Webservice vs. Websocket

Hier ein Versuch, den Vorteil einer Websocket-Verbindung gegenüber der REST-Schnittstelle zu verdeutlichen:

 REST WebserviceWebsocket
AnfrageClientServerClientServer
Startsequenz
Kanal öffnen--Öffne Websocket-KanalWebsocket-Kanal ist geöffnet
Gesamt-StrukturAnforderung StrukturdateiLiefere StrukturdateiAnforderung StrukturdateiLiefere Strukturdatei
Gesamt-Status--Anforderung GesamtstatusLiefere Gesamtstatus:
Licht 1 aus
Licht 2 ein 
Licht 1Anforderung Status Licht 1Licht 1 aus--
Licht 2Anforderung Status Licht 2Licht 2 ein--
Anwender schaltet Licht 2 aus
Licht 1Anforderung Status Licht 1Licht 1 aus--
Licht 2Anforderung Status Licht 2Licht 2 aus-Licht 2 wurde ausgeschaltet!

Erläuterung:

Beim Starten des Clients muss in beiden Varianten die Strukturdatei geladen werden. Aus der Strukturdatei weiß der Client, welche Funktionsbausteine (Taster, Lichtsteuerung usw.) dargestellt werden sollen. Während der REST-Client nun alle Funktionsblöcke einzeln abfragen muss, kann der Websocket-Client mit einer Anforderung den Status aller Funktionsbausteine abfragen.

Damit im weiteren Verlauf der REST-Client aktuell bleibt, muss er alle Funktionsbausteine immer wieder abfragen. Der Websocket-Client hingegen braucht selbst nicht aktiv werden. Sobald (z.B. durch einen Anwender) eine Änderung durchgeführt wird, sendet der Server diese Statusänderung an den Client.

Der Vorteil von Websocket ist daher eine sehr schnelle Aktualisierung des Status und eine Reduzierung des Verkehrs auf das Nötigste.

 

 

  • No labels