FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: PatrickR am 19 Februar 2018, 20:12:58

Titel: Tablet UI: "longpoll: websockets not supportetd or not activated..."
Beitrag von: PatrickR am 19 Februar 2018, 20:12:58
Mahlzeit!

Habe aktuell ein Problem, dass mit der aktuellen git-Version von FTUI Longpoll auf AJAX zurück fällt.
Kurz zu meinem Setup: Ich setze FTUI auf einem separaten Apache ein, für FTUI verwende ich ein separates WEB-Device ("WEB_FTUI", meta web_device und fhemweb_url sind entsprechend gesetzt.)

Nach dem Aufruf der Seite erhalte die die Fehlermeldung "longpoll: websockets not supportetd or not activated > fall back to AJAX". Das Problem besteht aus zwei Teilproblemen.

Teilproblem A
Nach einigem Debugging musste ich Folgendes feststellen:
Workaround A: Lügen, konkret:
<meta name='web_device' content='WEB'>
(longpoll von WEB ist ebenfalls auf websocket gesetzt).

Teilproblem B
Mit dem obigen Workaround liefert ftui.deviceStates[ftui.config.webDevice].longpoll.val nun 1 zurück, nicht 'websocket'.
Workaround B: csrfToken in WEB_FTUI auf eine Konstante setzen statt random.

Patrick
Titel: Antw:Tablet UI: "longpoll: websockets not supportetd or not activated..."
Beitrag von: setstate am 19 Februar 2018, 21:14:44
Du musst einen anderen Namen als WEB_* benutzen.

Ich ignoriere diese komplett, weil das die TEMPORARY Instanzen sind. Könnte man vielleicht mit einem passenden RegEx besser machen, aber ich bin mir nicht sicher, ob das immer so gebildet wird:

WEB_<PEER>_<PORT>

/WEB_\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}_\d{5}/
Titel: Antw:Tablet UI: "longpoll: websockets not supportetd or not activated..."
Beitrag von: PatrickR am 19 Februar 2018, 21:52:57
Mahlzeit!

Danke für die Info.

Ggf. könnte man einen Zwischenweg gehen und auf WEB_.+_.+ oder so matchen bzw. alternativ dokumentieren (z. B. bei "The name of your FHEMWEB device" in der README.md).
Habe das jetzt bei mir angepasst. Hast Du noch eine Idee zu der Sache mit dem csrfToken? Oder ging das nie und ist mir nur nicht aufgefallen?

Patrick
Titel: Antw:Tablet UI: "longpoll: websockets not supportetd or not activated..."
Beitrag von: setstate am 19 Februar 2018, 22:04:43
csrfTokenHTTPHeader auf 1 gesetzt?
Titel: Antw:Tablet UI: &quot;longpoll: websockets not supportetd or not activated...&quot;
Beitrag von: PatrickR am 19 Februar 2018, 23:14:28
Ist lt. Doku der Default. Also ja.


Von unterwegs gesendet.
Titel: Antw:Tablet UI: "longpoll: websockets not supportetd or not activated..."
Beitrag von: setstate am 19 Februar 2018, 23:32:47
Stimmt aber nicht. Setze es lieber auf 1

Nachtrag: wenn das INTERNAL CSRFTOKEN da ist, muss auch der Response-Header X-FHEM-csrfToken mitkommen
Titel: Antw:Tablet UI: "longpoll: websockets not supportetd or not activated..."
Beitrag von: drhirn am 20 Februar 2018, 09:24:12
Wenn da dann alles funktioniert, dürfte man dann erfahren, wie deine Einstellungen dann gesetzt sind?

Danke!
Titel: Antw:Tablet UI: "longpoll: websockets not supportetd or not activated..."
Beitrag von: PatrickR am 20 Februar 2018, 21:11:46
Mahlzeit!

Jetzt funktioniert es interessanterweise.

@drhirn:

defmod WWW_FTUI FHEMWEB 8001 global
attr WWW_FTUI CORS 1
attr WWW_FTUI longpoll websocket



<meta name="longpoll_type" content="websocket">
<meta name='web_device' content='WWW_FTUI'>
<meta name="fhemweb_url" content="http://fhem:8001/fhem">


Patrick