Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Przeliczanie czasu w rzeczywistości
Boshi
post 6.10.2016, 01:59:44
Post #1





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

Ostrzeżenie: (0%)
-----


Cześć,
takie mnie nurtuje pytanie. Jeżeli ktoś grał w plemiona to wie jak wygląda system budowania. Chodzi o to, że klikamy jakiś budynek z czasem np 3h i po 3h on jest wybudowany. W jaki sposób to jest zaprojektowane? A w szczególności jak wykonana jest operacja przerywania budowania? Bo podejrzewam, żę jak wybudujemy coś to dane idą do bazy.

PHP + NODE.JS+ websocety?

Teoretycznie; nie dało by się tego zrealizować PHP + js? coś w stylu, klikamy, odpala się zegar w js i po odpowiednim czasie wykonywany jest insert do bazy? (mega prymitywne biggrin.gif)

p.s temat jest luźny, bo nie tworzę czegoś takiego a po prostu z ciekawości pytam.
Go to the top of the page
+Quote Post
emstawicki
post 6.10.2016, 07:11:09
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 40
Dołączył: 2.06.2016
Skąd: Olsztyn

Ostrzeżenie: (0%)
-----


Dlaczego nie, w takiej prostej wersji PHP + JS jest to możliwe (przykład plemion - ta gra pamięta moje czasy edukacji szkolnej smile.gif).
Podczas wywołania budowania zapisujesz znacznik czasowy w którym rozpoczęto budowę i planowany czas zakończenia, różnica tego jest progresem. JS to tylko prezentacja danych może być w formie licznika odmierzającego w dół.


--------------------
Jak w Olsztynie, to tylko w Revolver Rock Cafe .
Sprawdź postęp propagacji DNS
Go to the top of the page
+Quote Post
Boshi
post 6.10.2016, 11:45:48
Post #3





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

Ostrzeżenie: (0%)
-----


A profesjonalnie na jakiej zasadzie jest to budowane?
Go to the top of the page
+Quote Post
zegarek84
post 6.10.2016, 21:51:35
Post #4





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


wspomniałeś o websocketach - którą wersję plemion próbowałeś zdebugowaćquestionmark.gif - podejrzewam, iż 2 gdyż 1 nie posiada websocketów...

jak wspomniał emstawicki dane tam są przedstawiane w formie liczników w dół, po stronie serwera są zapisywane zdarzenia i w teorii powinny one wykonywać się po kolei, dane możesz zapisywać np. w bazie i trochę przed pobrać do deamon'a który te zdarzenia w dokładniejszym czasie obrobi... cała główna koncepcja jest taka, iż w 1 to nawet nie musiałeś mieć włączonej obsługi JS by w to pograć ;]... wszystko odbywało się po stronie serwera, oczywiście przy wyłączonym JS zdarzenie widziałeś dopiero po odświeżeniu strony...

muszę przyznać, iż był okres gdy ta gierka mnie wciągnęła... w sumie dzięki niej daaawno temu w przeszłości dobrze poznałem JS do userscript oraz automatyzujących zadanie skryptozakładek, trochę o bazach danych i algorytmach do generowania sobie optymalnych linków z faremkami gdyż z mapki źle się farmiło };->


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post
Skie
post 6.10.2016, 21:57:22
Post #5





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


Poczytaj o long-pollingu.


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
Boshi
post 6.10.2016, 22:20:21
Post #6





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

Ostrzeżenie: (0%)
-----


Czyli to tak na prawdę wszystkie zdarzenia w czasie rzeczywistym (czas budowy, rosnące surowce bez przładowania itd) to webSocety i pewnie jakiś node.js ? to jest ta sama zasada działania zdaje się jak przy powiadomieniach w czasie rzeczywistym?
ogólnie poczytam sobie o tym, porobie jakieś ćwiczenia, bo ciekawią mnie zagadnienia eventów w czasie rzeczywistym.
Go to the top of the page
+Quote Post
Skie
post 6.10.2016, 22:25:52
Post #7





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


Nie, to nie są websockety. To jest long-polling z wykorzystaniem samego HTTP. Klikasz na budowę budynku, do serwera leci requet, serwer przelicza czas kiedy budowa się zaczęła, odsyła do przeglądarki ile ma ona czekać, przeglądarka uruchamia timer a po tym czasie odświeża automatycznie stronę. Nic wiecej tutaj nie potrzeba. A jak koniecznie chcesz się bawić websocketami to zamiast mieszkać PHP z Node.js użyj albo samego Node.js albo WebSocketów w PHP.

Ten post edytował Skie 6.10.2016, 22:26:43


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
Boshi
post 8.10.2016, 15:19:00
Post #8





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

Ostrzeżenie: (0%)
-----


Czyli jeżeli chcę zrobić jakieś tam powiadomienia na stronę to mogę wykorzystać

long polling?
albo node + web socet?

jak się ma ratchet do połączenia noda i websocetów? dla prostej apki? są jakieś problemy o który warto wspomnieć? (ruch na stronie raczej mały)

Go to the top of the page
+Quote Post
Skie
post 8.10.2016, 15:27:24
Post #9





Grupa: Zarejestrowani
Postów: 555
Pomógł: 84
Dołączył: 20.02.2008
Skąd: Małopolska

Ostrzeżenie: (0%)
-----


Zaleznie od potrzeb używasz albo WebSocket, albo HTTP Long-Polling. To pierwsze jest wydajniejsze, ale wymaga customowej logiki, bo nie jest zgodne z tym jak działa HTTP w 100%. Z tego co piszesz to long-polling będzie wystarczajace.

WebSocket to nie jest wynalazek node'owy. Jest to pewien standard. Websocketów możesz używać również w PHP, Pythonie, Ruby i zapewne wielu innych językach programowania.

Ratchet to implementacja WebSocketów w PHP, dzięki czemu nie potrzebujesz Node.js by ich używać. Ratchet jest wydajniejszy od implementacji node'owych, ale nie jest aż tak enterprise'owy jak np socket.io. A jak myślisz nad WS w PHP to oprócz ratcheta polecam jeszcze sprawdzić Kraken/Network smile.gif

Ten post edytował Skie 8.10.2016, 15:32:42


--------------------
Wieloprocesowość i wielowątkowość w PHP, poznaj Kraken PHP!
Serwer HTTP i WebSocket w PHP | Promise/A+
Strona Domowa | Elradia MMORPG
FireFox: make the web better.
Go to the top of the page
+Quote Post
Boshi
post 8.10.2016, 15:54:52
Post #10





Grupa: Zarejestrowani
Postów: 342
Pomógł: 15
Dołączył: 30.08.2011

Ostrzeżenie: (0%)
-----


Przetestuje ratcheta, potem ajaxa w long polling i zdecyduje, choć pewnie masz rację, że long polling będzie w moim wypadku lepsze. Dzięki za rozjaśnienie wink.gif
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: 28.03.2024 - 17:38