Projekt:AjaxDoorStatus: Unterschied zwischen den Versionen
Poschi (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
Poschi (Diskussion | Beiträge) K (Linkfix) |
||
Zeile 1: | Zeile 1: | ||
{{Infobox | {{Infobox | ||
| maintainer = [[User:Poschi|Poschi]] | | maintainer = [[User:Poschi|Poschi]] | ||
| machine = [[Host: | | machine = [[Host:rumpl.k4cg.org|rumpl.k4cg.org]] | ||
| jahr = 2019 | | jahr = 2019 | ||
| url = https://status.k4cg.org/ | | url = https://status.k4cg.org/ |
Version vom 25. April 2019, 11:56 Uhr
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.