longpoll über websocket, Datenlänge bei Readings>64K falsch

Begonnen von ChrisD, 20 März 2017, 16:27:43

Vorheriges Thema - Nächstes Thema

ChrisD

Hallo,

Bei Tests mit dem Medialist-Widget von FTUI ist aufgefallen dass Readings > 64K nicht korrekt per longpoll übertragen werden wenn websocket verwendet wird.

Das Problem kommt von der Zeile
$txt = chr(0x81) . chr(0x7E) . pack('n', $len) . $txt; in 01_FHEMWEB.pm. Mit 0x7E sind nur maximal 64K erlaubt, zusätzlich trägt das pack die Länge modulo 64K ein was dazu führt dass der Browser eine Fehlermeldung anzeigt und die Daten ignoriert. Provisorisch habe ich das Problem bei dem betroffenen User mit dem angehängten Patch gelöst.

Wäre es möglich den Code anzupassen ?

Bei der Verwendung vom normalen longpoll tritt übrigens kein Fehler auf.

Grüße,

ChrisD

rudolfkoenig

Danke fuer den Patch, habs ungetestet eingecheckt. Die Sache mit 64k war mir beim Einspielen des Websocket-Patches von andre klar, habe nur leise darauf gewartet, wann und wem es auffaellt :)