Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pomoc potrzebna - stoper online
devsiok
post 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
Go to the top of the page
+Quote Post
Lord
post 26.06.2020, 09:57:38
Post #2





Grupa: Zarejestrowani
Postów: 239
Pomógł: 32
Dołączył: 10.03.2004

Ostrzeżenie: (10%)
X----


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...
Go to the top of the page
+Quote Post
devsiok
post 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.
Go to the top of the page
+Quote Post
netir
post 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
Go to the top of the page
+Quote Post
viking
post 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%)
-----


Raczej https://developer.mozilla.org/en-US/docs/We...ver-sent_events


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.04.2024 - 10:08