Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [long polling] Krótkie pytanie
markonix
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
redeemer
post
Post #2





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

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


@Crozin dobrze prawi. To nie baza danych ma być "spoiwem" pomiędzy wymianą danych między klientami, ale sama aplikacja serwerowa.

Do aplikacji typu czat lepiej chyba użyć XMPP (np. ejabberd/openfire, po stronie klienta: strophejs), cometd czy nawet ape-project.

Myśląc o budowie takiej aplikacji pomyśl też nad "wielozakładkowością". Czy lepiej, żeby dla każdej instancji strony (zakładki/nowego okna) w obrębie przeglądarki było nawiązywane osobne połączenie do serwera, czy może lepiej jak będzie jedno połączenie w obrębie wszystkich instancji, a synchronizacja czatu na wszystkich instancjach (zakładkach) będzie się odbywać np. za pomocą magazynu lokalnego. W przypadku jednego połączenia w obrębie przeglądarki dochodzi jeszcze problem "przerzucania roli" gdy mamy minimum 2 instancje strony i użytkownik zamyka tą z obsługą połączenia.

Można też pójść na łatwiznę i ograniczyć działanie aplikacji tylko do jednej "zakładki", tak jak miała/ma nk (IMG:style_emoticons/default/smile.gif)

PS. I fb i nk działał/działa na bazie protokołu XMPP (FB na zmodyfikowanym ejabberd). Jednak sprawdzane to było grubo ponad 1,5 roku temu.

Ten post edytował redeemer 9.10.2012, 10:12:30
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 12.10.2025 - 07:55