2011-09-21 19 views
9

Come funziona la chat di Facebook? Qualcuno può darmi un'idea? Voglio dire che stanno usando websocket o AJAX? Come lo hanno implementato?Come funziona la chat di Facebook?

+0

Guarda la pagina di Facebook usando firebug; In particolare la scheda della console. – Alfwed

+0

Solo un consiglio: XMPP –

risposta

10

E 'un modello comet (see wikipedia):

Comet è un modello di applicazione web in cui una richiesta di lunga data HTTP consente a un server web per spingere i dati a un browser, senza che il browser richiede esplicitamente. Comet è un termine generico che comprende le tecniche multiple per ottenere questa interazione. Tutti questi metodi si basano su funzionalità incluse nei browser predefinite, come JavaScript, anziché su plug-in non predefiniti. L'approccio di Comet differisce da il modello originale del web, in cui un browser richiede una pagina web completa alla volta.

Esempio di quadro di comete è APE. È per javascript, tuttavia la cometa può essere scritta non solo in javascript.

0

L'utente stabilisce una connessione WebSocket tramite un processo noto come handshake WebSocket. Questo processo inizia con l'utente che invia una richiesta HTTP regolare al server. Un'intestazione Upgrade è inclusa in questa richiesta che informa il server che l'utente desidera stabilire una connessione WebSocket. Gli URL WebSocket utilizzano lo schema ws. C'è anche wss per connessioni sicure WebSocket che è l'equivalente di HTTPS. Se il server supporta il protocollo WebSocket, accetta l'aggiornamento e lo comunica tramite un'intestazione di aggiornamento nella risposta. Ora che l'handshake è completo, la connessione HTTP iniziale viene sostituita da una connessione WebSocket che utilizza la stessa connessione TCP/IP sottostante. A questo punto, una delle due parti può iniziare a inviare dati.

Con WebSockets è possibile trasferire tutti i dati desiderati senza incorrere nell'overhead associato alle richieste HTTP tradizionali. I dati vengono trasferiti tramite una WebSocket come messaggi, ognuno dei quali è costituito da uno o più frame contenenti i dati che si inviano (il carico utile). Per garantire che il messaggio possa essere ricostruito correttamente quando raggiunge il client, ogni frame è preceduto da 4-12 byte di dati sul carico utile. L'utilizzo di questo sistema di messaggistica basato su frame consente di ridurre la quantità di dati non a carico utile trasferiti, con conseguenti riduzioni significative della latenza.

Problemi correlati