Zeitsynchronisation per Webserver

  • Hallo Forum,
    ich bin ganz neu hier und hab mich schon das eine oder andere mal so ziemlich fest geselen, weil es sehr interessante und hilfreiche Beiträge gibt.
    Nun hab ich aber ein Problem, bei dem ich nicht so recht weiter komme. Folgende Ausgangslage: Ich betreibe im Intranet (und nur dort, definitiv ohne Internetverbindung!!) einen Webserver (apache2) mit exakt zwei Verbindungen. Eine über localhost am Server, die nur der Anzeige dient und eine aus dem Netzwerk heraus, die der Steuerung dient. Der Steuerzugang schreibt in unregelmäßigen Abständen Änderungen in eine mySQL-Datenbank auf dem Server, die dieser permanent ausliest und im lokalen Browser anzeigt (Ajax, JS, php, etc). Das funktioniert bisher ganz ausgezeichnet und hat auch trotz des sehr kurzen Aktualisierungsintervalles von 0.75 Sekunden, keine Performance-Probleme. Nun müssen aber beide angezeigten Seiten (Steuerrechner und Server) eine mitlaufende Zeit anzeigen, die exakt syncronisiert ist und die angehalten und wieder fortgesetzt werden muß. Meine Idee ist nun, auf dem Server einen Timer laufen zu lassen, den beide Seiten auslesen und anzeigen und den der Steuerrechner starten, unterbrechen und fortsetzen kann.
    Ist so etwas realisierbar und wenn ja wie? Gibt es evtl. eine andere Möglichkeit beide Anzeigen zu synchronisieren? Oder bin ich gar ganz auf dem Holzweg?
    Ich würde mich über jeden Schubser in die richtige Richtung freuen.

    Gruß Micha

    Wo ich bin ist nichts, doch überall kann ich nicht sein!

  • Hallo threadi,

    nun ja, ntpd trifft mein Problem nicht. Ich will nicht die Uhrzeit der Rechner synchronisieren, sondern einen selbst gestarteten zeitlichen Ablauf! Außerdem läuft das Ganze im Intranet, also OHNE Internetanbindung.
    Konkret soll es eine Anzeigetafel (Paneel) für Handball werden. Der Schiedsrichter pfeift das Spiel an, am Steuerrechner wird der Timer gestartet und am Paneel-PC läuft die Anzeige der Sekunden ab 00:00 los. Wird das Spiel unterbrochen, wird am Steuerrechner Stop gedrückt und die Anzeige am Paneel stoppt. Bekommt ein Spieler eine 2-min-Strafe, wird ein zusätzlicher Timer gestartet, der von 02:00 bis auf Null zurückzählt (auch mehrfach möglich). Auch diese(r) Timer muß bei Spielunterbrechung angehalten werden. Prinzipiell ist das ja nicht so schwer darzustellen, aber die Anzeige der Timer muß natürlich am Steuerrechner und am Paneel exakt übereinstimmen und das ist das Problem, wenn die Timer lediglich im lokalen Browser laufen. Deshalb meine Idee, einen eigenen Timer am Server laufen zu haben, auf den beide Rechner zugreifen und der vom Steuerrechner bedient wird. Verständlich? Die Übertragung der Spieldaten (Tore etc.) vom Steuerrechner zum Paneel erfolgt per mySQL-DB auf dem Web-Server, der auf dem Paneel läuft, das funktioniert soweit gut, nur die Zeitanzeige kann ich so nicht abgleichen.

    Gruß Micha

    Wo ich bin ist nichts, doch überall kann ich nicht sein!

  • Verstehe. Könntest Du dafür nicht MySQL nutzen? Du speicherst die Zeiten in MySQL (also per NOW() als DATETIME) und greifst auf diese Datenbankinhalte sowohl vom Steuerrechner als auch vom Paneel zu.

  • Das scheint mir die mit Abstand unsicherste Methode zu sein, da ja beide Rechner zeitgleich aus der Datenbank lesen und den/die jeweils lokalen Timer mit der ermittelten Zeit starten müssten um sekundengenau synchronisiert zu sein. Und das unter Umständen bei bis zu sieben (!) voneinander unabhängigen Timern (einmal Spielzeit und bis zu sechs verschiedene Zeitstrafen). Bei Spielunterbrechungen (Foul, Timeout, etc.) müssen alle Timer sekundengenau stoppen und bei Anpfiff wieder starten. Ob das über die Zwischenspeicherung per Datenbank so exakt funktioniert ist kaum zu glauben. Ich werde es aber mal testen.
    Mein Traum wäre ja ein eigener Zeitserver auf dem Paneel, mit mehreren Instanzen, den ich per php von allen Browsern setzten und abfragen kann.

    Wo ich bin ist nichts, doch überall kann ich nicht sein!