W jaki sposób Gmail Chat może wysyłać żądania AJAX bez interakcji z klientem?

Wszystkie odpowiedzi HTTP wymagają od klienta ich zainicjowania, nawet te wykonane przy użyciu AJAX. Ale funkcja czatu Gmaila jest w stanie odbierać wiadomości od innych użytkowników, nawet gdy siedzę w wygodnym fotelu komputerowym i oglądam, ale nie wchodzę w interakcję z przeglądarką. Jak oni to zrobili?

Author: Pablo Fernandez, 2009-04-09

3 answers

Ta technologia jest znana jako "comet", ale także jako "Server push"," reverse ajax " itp.

Chodzi o przesyłanie danych z serwera do przeglądarki, utrzymanie połączenia http przy życiu. Więcej informacji na ten temat można znaleźć w artykule Wikipedii (Wersja angielska ).

Również tutaj całkiem dobra prezentacja z Joe Walkerem z DWR, gdzie mówi o komecie.

 42
Author: Pablo Fernandez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-09 06:14:47

Jak słusznie zauważyłeś, HTTP wymaga, aby dane były "pobierane" przez Klienta. Gmail może nadal "pobierać" dane z serwera, używając timera do uruchomienia operacji HTTP zamiast wymagać od użytkownika kliknięcia czegoś. Może się więc wydawać, że to auto, ale nadal jest inicjowane przez Klienta.

 8
Author: sybreon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-09 03:56:31

Tak komety są poprawne. Google Web Toolkit Applications autorstwa Ryana Dewsbury wyjaśnia, jak stworzyć aplikację komunikatora opartego na kometach w rozdziale 9.

 5
Author: Ankur,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-08-16 09:05:29