Projekt:AjaxDoorStatus

Aus k4cg.org
Projekt:AjaxDoorStatus
Betreuer*In Poschi
Jahr 2019
Läuft auf rumpl.k4cg.org
URL https://status.k4cg.org/
Status realisiert

Allgemeines

Wir haben einen wundervollen Door Status der seine Infos per MQTT an einen Server schickt. Von dort landen sie dann in einem status.json. Dort können sie per HTTP abgeholt und weiter verarbeitet werden.

Problemstellung

Wir wollen den Status gerne auf der Webseite anzeigen. Allerdings steht das status.json nicht immer zuverlässig zur Verfügung. Bisher hatten wir insbesondere auf der mobilen Seite die Abfrage des status.json als Teil des PHP-Templates. Das brachte zum Einen Probleme beim Caching des Templates und zum Anderen dauerte bei Störungen des status.json jeder einzelne Anfrage ans Wiki so lange bis der Timeout des PHP-HTTP-Requests auslief (30 Sekunden).

Idee

Ein JavaScript-Schnipsel der das status.json mit einem manuellen Timeout von 2 Sekunden abruft und den Status dann asynchron anzeigt.

Umsetzung

Ein Prototyp ist hier zu finden: https://status.k4cg.org/

Reverse-Proxy

Wir haben auf unserer Seite HTTPS, wollen keine Zertifikatswarnung und nicht die Dyndns-Adresse mit komischem Port an den Nutzer ausliefern. Deshalb haben wir auf rumpl.k4cg.org unter https://status.k4cg.org/status.json jetzt einen Reverse-Proxy zur Dyndns-Adresse.

Einbindung mobile Seite

Das JavaScript ist jetzt Teil des mobilen Templates.

Einbindung normale Seite

Auf der normalen Seite hatten wir schon immer eine Einbindung per Iframe. Für den quick-win wurde daraus der komplette PHP-Teil entfernt und komplett mit JavaScript ersetzt. Irgendwann sollte man auch mal das Iframe loswerden.