Pomoc potrzebna - stoper online |
Pomoc potrzebna - stoper online |
25.06.2020, 06:46:47
Post
#1
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 29.07.2016 Ostrzeżenie: (0%) |
Mam pewien problem. Wykonano dla mnie skrypt odmierzający czas. W skrypcie jest strona "admin", na której stopuje i startuje się czas oraz zmienia jego wartość. Na stronie "klient" czas jest wyświetlany (klient wyświetla to, co jest w adminie.
Strona jest na poniższych linkach: http://www.topdach1.ayz.pl/stoper/ http://www.topdach1.ayz.pl/stoper/admin123.php Dopóki strona admin jest odpalona na pierwszym planie, to klient działa poprawnie. Problem pojawia się wtedy, gdy admina zniżam do belki lub przechodzę w zupełnie inne okno zakładki. W tym momencie w kliencie czas się zatrzymuje. Gdy ponownie wchodzę na admina to klient nadrabia czas. W czym jest problem ? Potrzebuję zrobić tak, że admina w każdej chwili mogę wyłączyć a klient i tak będzie działał. Mam nadzieję, że dobrze wytłumaczyłem problem. Ten post edytował devsiok 25.06.2020, 07:14:47 |
|
|
26.06.2020, 09:57:38
Post
#2
|
|
Grupa: Zarejestrowani Postów: 239 Pomógł: 32 Dołączył: 10.03.2004 Ostrzeżenie: (10%) |
https://developer.mozilla.org/en-US/docs/We...ed_to_%3E1000ms
Ogólnie nie jest to zrobione poprawnie powinno sie zastosować websockets, napewno nie powinno sie aktualizować danych do serwera co kilka millisecond jak to teraz masz... |
|
|
29.06.2020, 03:44:51
Post
#3
|
|
Grupa: Zarejestrowani Postów: 14 Pomógł: 0 Dołączył: 29.07.2016 Ostrzeżenie: (0%) |
Nie jest zrobione poprawnie ze względu na to, że nie jest zastosowane websockets czy dlatego, że za często jest aktualizacja danych ?
Ten stoper potrzebny mi jest do transmisji internetowych. Mam telewizję internetową transmitującą sport i wykorzystywane to jest w piłce nożnej halowej, gdzie przy każdej przerwie w grze czas jest zatrzymywany. Liczą się tam ułamki sekund. Działa to w taki sposób, że jedna osoba wznawia i startuje czas na adminie a klient jest dodany do programu, na którym przeprowadzana jest transmisja. |
|
|
29.06.2020, 11:13:57
Post
#4
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 5 Dołączył: 20.05.2019 Ostrzeżenie: (0%) |
Jest źle zrobione bo jest zbyt często wysyłany request u pojedynczego klienta. Możesz albo aktualizować czas u Klientów/post u admina co kilka minut, albo najlepiej użyć websocketów, żeby zamiast tysięcy requestów, czyli połączeń TCP, które są non stop otwierane/zamykane, zrobić jedno przez websockety. W obecnej formie po wdrożeniu takiego skryptu, kilku klientów zarżnie Ci serwer.
W websocketach super jest to, że klient/serwer tylko raz się witają, a później strzelają do siebie już tylko danymi + tzn PING/PONG - czyli to jest dokładnie to co potrzebujesz. Najlepiej oddelegować takie zadanie do zewnętrznego serwisu, żeby nie obciążać serwera HTTP. Z takich popularnych to np https://pusher.com/. Ten post edytował netir 29.06.2020, 11:15:43 |
|
|
29.06.2020, 11:17:16
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 365 Pomógł: 1114 Dołączył: 30.08.2006 Ostrzeżenie: (0%) |
-------------------- |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 10:08 |