![]() |
![]() ![]() |
![]() |
![]()
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 |
|
|
![]()
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... |
|
|
![]()
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. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 45 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 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 6 380 Pomógł: 1116 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 12:55 |