Projekt:AjaxDoorStatus: Unterschied zwischen den Versionen

Aus k4cg.org
Zeile 29: Zeile 29:
 
=== Einbindung Wiki ===
 
=== Einbindung Wiki ===
  
Auf der normalen Seite hatten wir schon immer eine Einbindung per [https://k4cg.org/doorstatus.php Iframe]. Dieser wurde jetzt ersetzt und wir binden das nötige JavaScript und CSS über unser MediaWiki-Plugin Lackiererin dynamisch in den Skin ein.
+
Auf der normalen Seite hatten wir schon immer eine Einbindung per [https://k4cg.org/doorstatus.php Iframe]. Dieser wurde jetzt ersetzt und wir binden das nötige JavaScript und CSS über unser MediaWiki-Plugin [[Projeckt:Lackiererin|Lackiererin]] dynamisch in den Skin ein.

Version vom 10. Juni 2019, 17:58 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 Wiki

Auf der normalen Seite hatten wir schon immer eine Einbindung per Iframe. Dieser wurde jetzt ersetzt und wir binden das nötige JavaScript und CSS über unser MediaWiki-Plugin Lackiererin dynamisch in den Skin ein.