Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Komunikacja (powiadamianie) ServerSide -> ClientSide oparte na zdarzeniach
vokiel
post
Post #1





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

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


Ten dział chyba będzie najlepszy na taki temat...

Tak się ostatnio zastanawiałem: czy jest skuteczny, oparty na zdarzeniach, sposób na komunikację serwera z klientami? Obojętnie: język programowania, technologia, skrypt, cokolwiek.

Mam na myśli taką przykładową sytuację: mamy serwis prezentujący jakieś informację aktualizowane na bieżąco, jednak zależne od zdarzeń. Ilość zdobytych punktów w meczu, czas najszybszego okrążenia, pojawienie się nowego konsultanta w serwisie, etc. Cokolwiek, co opiera się na zdarzeniu, a nie na czasie. Teraz, standardowo, każdy klient odpytuje serwer co zadany interwał czasu, czy przypadkiem dana rzecz się nie zmieniła (ajax). Rozwiązanie to przy np 10k użytkowników on-line powoduje sporo zbędnego ruchu i obciążenia. Jeśli dane pojawiają się w całkowicie losowych odstępach ciężko jest nawet ustawić sensowny interwał dla odświeżania. Sensowniej by było, gdyby aplikacje www u klienta "oczekiwały" na sygnał, informację z serwera w momencie aktualizacji danych.

Oczywiście można zrobić taki ajaksowy systemik do aktualizacji, a po stronie serwera dobry cache (nawet statyczny plik), odpowiednie nagłówki, etc. - będzie działać. Jednak ciągle pozostaje te X zbędnych połączeń, które powstają, odpytują serwer dostają wielkie nic (304 Not Modified), zamykają się, czekają określony czas i znów męczą bez potrzeby serwer...

Jedyne co znalazłem, to: Comet, Web Sockets, coś o BEA WebLogic Event Server

Czy jest sensowna metoda na taki sposób komunikacji?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
l0ud
post
Post #2





Grupa: Zarejestrowani
Postów: 1 387
Pomógł: 273
Dołączył: 18.02.2008

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


Spotkałem się ze wzorcem, który polegał na wywoływaniu żądania przez ajax do skryptu, który usypiał do czasu w którym nastąpiło coś nowego (lub np. po 30 sekundach). Od razu po "wzbudzeniu" skryptu żądanie się kończyło, dane przesyłane a połączenie nawiązywane na nowo (nowe żądanie).
Takie rozwiązanie na pewno zmniejszyło by ruch pomiędzy serwerem a klientem, nie mam pojęcia jednak czy serwer wyrobiłby przy takiej ilości połączeń i zatrzymanych wątków php. Na pewno przydałaby się jakaś specjalna konfiguracja.
Innych sensowych rozwiązań (działających wszędzie i wykorzystujących protokół HTTP) nie widzę...
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 10.06.2026 - 18:51