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
chlebik
post
Post #2





Grupa: Zarejestrowani
Postów: 113
Pomógł: 5
Dołączył: 12.09.2006
Skąd: Pruszków/Warszawa

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


Totalnie chamskim rozwiazaniem byloby wydzielenie oddzielnej maszyny tylko do "pingowania" na konkretne adresy. Niech pobieraja np. jakis hash i po problemie (w architekturze, ze to klient regularnie odpytuje serwer). Na pewno zmniejsza to ruch na glownym serwerze, ktory nie musi procesowac duzej ilosci zapytan, a moze zajac sie konkretnymi rzeczami.

Kiedy cos zmieni sie powaznie na glownym serwerze wowczas idzie info do tego swoistego proxy (np. zmienia sie hash) i wtedy klient otrzymujac inna odpowiedz niz poprzednia leci do glownego serwera. Tam juz w jakims cache czeka na niego nowa wersja contentu.

To tak na szybko i chamsko, ide po kawe bo zasne.
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: 10.06.2026 - 14:16