![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Powoli zaczynam zapoznawać się z tą technologią bo dużymi krokami zbliża się do mnie konieczność zbudowania komunikatora/czatu o dużej przepustowości.
Zastanawia mnie jednak jedno. Jak już dobrze zrozumiałem to ta technologia polega na tym, że przeglądarka wysyła żądanie pod podaną stronę (php) i oczekuje na odpowiedź. Wszystko jest tu dla mnie jasne, zamiast co 3 sekund wysyłać Request HTTP to wysyła go raz i czeka na odpowiedź. Ale zastanawia mnie co ma się dziać w tym momencie w skrypcie PHP, który np. odpytuje o nowe wiadomości? Czy tutaj będzie pętla, która co sekundę (sleep) odpytuje bazę o nowe wiadomości? Jeśli tak to gdzie tu korzyść oprócz zmniejszonej liczby Requestów, które chyba nie są takim obciążaniem jak odpytywanie bazy danych co X sekund? Ten post edytował markonix 8.10.2012, 20:13:44 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Znowu wracam do problemu z long polling.
Oki, mniej requestów, zapytania są optymalne, ale teraz naszła mnie kolejna myśl co do wydajności takiego rozwiązania, a mianowicie liczba połączeń z bazą. Przy pracy nad czatem zawiesiłem parę razy serwer - "too many connections". Oczywiście był to wynik błędnych pętli ale ten błąd kieruje uwagę na powyższy problem. Funkcje z rodziny sleep nie kończą w żaden sposób skryptu, tak więc przyjmując te 30 sekund jeden użytkownik przez 30 sekund zajmuje bazę, albo przynajmniej utrzymuje z nią połączenie. Czy dobrze myślę? Czy utrzymanie połączenia może spowodować jakieś problemy? Czy może przy każdym obrocie pętli zamykać połączenie i otwierać na nowo? Ten post edytował markonix 29.09.2013, 19:52:22 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 16:39 |