Projekt:AjaxDoorStatus: Unterschied zwischen den Versionen

Aus k4cg.org
(typo fixes)
Keine Bearbeitungszusammenfassung
 
Zeile 4: Zeile 4:
| jahr = 2019
| jahr = 2019
| url = https://status.k4cg.org/
| url = https://status.k4cg.org/
| status = realisiert
| status = [[Projekt:SpaceAPI_3.0|ersetzt]]
}}
}}
'''[[Projekt:SpaceAPI_3.0|Siehe Nachfolgeprojekt]] DIESES PROJEKT WIRD NICHT LÄNGER BETRIEBEN UND INFORMATIONEN SIND OUTDATED'''


== Allgemeines ==
== Allgemeines ==

Aktuelle Version vom 4. November 2024, 19:49 Uhr

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

Siehe Nachfolgeprojekt DIESES PROJEKT WIRD NICHT LÄNGER BETRIEBEN UND INFORMATIONEN SIND OUTDATED

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.