2009-01-29 6 views
10

Czy istnieje ogólny sposób wdrożenia części aplikacji z JavaScript i dostarczenia trwałego połączenia z serwerem? Potrzebuję serwera, aby móc przekazywać dane do klienta, niezależnie od tego, czy klient znajduje się za firewallem. Dzięki z góryTrwałe połączenie z klientem

Odpowiedz

13

Zobacz, jak jest to ajax, ale utrzymuje połączenie otwarte, aby serwer mógł przekazać informacje do klienta.

Należy zauważyć, że zgodne przeglądarki będą zawierać tylko 2 połączenia (uwaga: most modern browsers no longer comply) z określoną domeną (domyślnie), więc możesz podzielić swoje domeny (np. Www.twojadomena.com i comet.twoja_domena.com), tak aby że drastycznie nie spowalniasz ładowania stron. Lub możesz po prostu upewnić się, że nie otwierasz połączenia komety, dopóki wszystko inne nie zostanie załadowane. To jest po prostu coś, na co trzeba uważać.

2

z HTTP, połączenie musi zacząć od klienta. Są jednak dostępne techniki, które pozwalają serwerowi utrzymywać połączenie otwarte i czyścić dane w razie potrzeby.

Powszechnie uważa się, że są to architektury Comet lub HTTP Streaming.

2

Można użyć do tego technik programowania Comet. Zasadniczo strona wywołuje serwer, który nie powraca, dopóki serwer nie ma czegoś do wysłania (w którym to momencie klient natychmiast wykonuje to samo połączenie). W ten sposób serwer może przesyłać treść do klienta w dowolnym momencie.

Obsługa różni się w zależności od platformy i jest bardziej problematyczna dla serwera niż dla klienta.