Websockets / Sec-Websocket-Protocol

Begonnen von beaune, 09 Februar 2021, 11:11:11

Vorheriges Thema - Nächstes Thema

beaune

Hallo,

ich hab mich mal an der Entwicklng eines eigenen Moduls versucht, um forked-daapd zu integrieren. In diesem Zuammenhang bin ich auf diesen interessanten Beitrag gestoßen, wo die Verwendung von Websockets durch ein Modul erläutert ist: https://forum.fhem.de/index.php?topic=109910.30. Das mit den Websockets funktioniert im Großen und Ganzen soweit ganz gut. Für den Websocket Server, den ich ansprechen möchte, muß ich jedoch noch ein Sec-Websocket-Protocol angeben, das meiner Wireshark-Aufzeichnung nach bei der Upgrade-Anfrage als Parameter mitgegeben werden muß. Leider hab ich nicht rausfinden können, ob und wie ich das in fhem angeben kann. Geht das überhaupt schon? Oder falls nein, könnten httputils vielleicht entsprechend erweitert werden?

Gruß
Beaune

rudolfkoenig

DevIo_OpenDev wird mit einem $hash als erstes Parameter aufgerufen.
Falls dieses $hash ein "header" Feld enthaelt, dann werden alle Eintraege in diesem "Unterhash" als HTTP-Header Zeilen uebernommen.
$hash->{header}{"Sec-Websocket-Protocol"} = "chat";
vor dem DevIO_OpenDev Aufruf sollte die Aufgabe erledigen.

Sec-Websocket-Protocol beschreibt, welche hoeheren Protokolle Client bzw. Server unterstuetzen.
Da kann das Framework (ausser den Wert weiterzugeben) nicht viel machen.

beaune

Habs probiert - und geht. Genau diese Info fehlte mir. Vielen Dank!