Odliczanie czasu u klienta i na serwerze

0

Czesc,
ucze sie pythona w polaczeniu z websocketami i spieciem z tego z klientem napisanym w javascript.

Pisze aplikacje do grania w szachy. Pojawil sie problem z odliczaniem czasu. Czas odliczam na serwerze i u klienta i po wykonanym ruchu aktualizuje czas na ten z serwera. Problem w tych ze rozjazdy bywaja spore i np po wyslaniu ruchu od klienta zostaje mi 1s a po aktualizacji z serwera pojawiaja sie 3 sekundy.

Chcialem Was wiec zapytac jak mozna to zoptymalizowac zeby czas odliczany na serwerze i po stronie klienta mial jak najmniejsze roznice albo jak to zsynchronizowac zeby dla uzytkownika byla prawie nie zauwazalne.

Znalazlem cos takiego: https://en.wikipedia.org/wiki/Clock_synchronization ale zanim sie w to zaglebie chcialem Was zapytac o porade. Jak to najlepiej rozwiazac?

Aktualnie dziala to tak:

  1. Startuje gra, uruchamiam timer po stronie serwera i wysylam info do klienta,
  2. Klient dostaje info i uruchamia swoj timer,
  3. Klient wykonuje ruch i wysyla informacje
  4. Serwer zatrzymuje swoj timer i odsyla informacje o czasie
  5. Klient zatrzymuje timer i aktualizuje informacje o czasie z serwera

Jak to ulepszyc?
Z gory dzieki za pomysly:)

2

walczyłem kiedyś z tym, rozwiązanie było takie, że odliczania szły niezależnie a co 5s leciało info po ws z aktualnym czasem na serwerze i tym samym na froncie robiło się synchro czasu.

1 użytkowników online, w tym zalogowanych: 0, gości: 1