2011-09-21 18 views
9

Jak działa czat na Facebooku? Czy ktoś może mi dać pomysł? Chodzi mi o to, że używają websocket lub AJAX? Jak go wdrożyli?Jak działa czat na Facebooku?

+0

Spójrz na stronę na Facebooku za pomocą firebuga; Zasadniczo kartę konsoli. – Alfwed

+0

Wskazówka: XMPP –

Odpowiedz

10

Jest to comet (see wikipedia) model:

Comet to model aplikacji internetowych, w których długo utrzymywane żądanie HTTP pozwala serwer WWW do pchania danych do przeglądarki, bez przeglądarce wyraźnie wzywającej go. Kometa jest terminem parasolowym, obejmującym wiele technik dla osiągnięcia tej interakcji. Wszystkie te metody polegają na funkcjach domyślnie włączonych w przeglądarkach, takich jak JavaScript, , a nie w innych niż domyślne wtyczkach. Podejście Comet różni się od oryginalnego modelu sieci WWW, w którym przeglądarka żąda pełnej strony internetowej na raz.

Przykładowa struktura komet to APE. Jest dla javascript, jednak kometa może być napisana nie tylko w javascript.

0

Użytkownik ustanawia połączenie WebSocket w procesie zwanym uzgadnianiem WebSocket. Proces ten rozpoczyna się od wysłania przez użytkownika zwykłego żądania HTTP do serwera. W tym żądaniu zawarty jest nagłówek aktualizacji, który informuje serwer, że użytkownik chce ustanowić połączenie WebSocket. Adresy URL WebSocket korzystają ze schematu ws. Istnieje również wss dla bezpiecznych połączeń WebSocket, który jest odpowiednikiem HTTPS. Jeśli serwer obsługuje protokół WebSocket, zgadza się na aktualizację i komunikuje to poprzez nagłówek Aktualizacji w odpowiedzi. Po zakończeniu uzgadniania początkowe połączenie HTTP jest zastępowane przez połączenie WebSocket, które używa tego samego podstawowego połączenia TCP/IP. W tym momencie każda ze stron może rozpocząć wysyłanie danych.

Dzięki WebSockets możesz przesyłać dowolną ilość danych bez ponoszenia kosztów związanych z tradycyjnymi żądaniami HTTP. Dane są przesyłane przez WebSocket jako wiadomości, z których każda składa się z jednej lub więcej ramek zawierających dane, które wysyłasz (ładunek). Aby upewnić się, że komunikat może zostać poprawnie zrekonstruowany po dotarciu do klienta, każda ramka ma przedrostek 4-12 bajtów danych o ładunku. Korzystanie z tego opartego na ramkach systemu przesyłania wiadomości pomaga zredukować ilość przesyłanych danych, które nie są ładowane, co prowadzi do znacznego skrócenia czasu oczekiwania.