Domanda

Sono interessato a un ottimo modo di fare instant messaging come Meebo e Facebook e MySpace hanno tutti, anche per le notifiche in una pagina. Esempio sul mio sito ora, quando un utente riceve un nuovo messaggio di posta elettronica, foto commento, profilo commento, richiesta di amicizia, alcune altre cose, si riceverà un messaggio di notifica e link sulla pagina sono in utilizzando jQuery e AJAX.

Credo che su larga scala che questo non è il modo migliore per farlo anche se, come il mio codice jQuery dovrà eseguire fondamentalmente uno script PHP per interrogare la tabella MySQL ogni 30 secondi o giù di lì per ogni utente che ha la pagina aperta con questo script in esecuzione. Vorrei aggiungere alla fine in una sorta di instant messaging come Facebook ha in una barra della chat nella parte inferiore dello schermo se riesco a scoprire un modo efficace di farlo.

Ho sentito parlare di Comet e HTML5 WebSockets, ma non sono sicuro se queste sono le soluzioni che dovrebbe essere guardando per tale caratteristica? Vorrei mantenere la larghezza di banda al minimo e l'esecuzione di una query ogni pochi secondi non sembra molto efficiente su un sito ad alto traffico.

Se si conosce alcune buone soluzioni, spiegare come funzionano un po 'si prega

È stato utile?

Soluzione

Credo che Facebook utilizza XMPP per la loro chat, in modo da avere uno sguardo esso.

XMPP è

  

una tecnologia aperta per la comunicazione in tempo reale, che alimenta una vasta gamma di applicazioni, tra cui la messaggistica istantanea, presenza, chat multi-party, chiamate vocali e video, la collaborazione, il middleware leggero, syndication dei contenuti, e l'instradamento generalizzata di dati XML.

Si potrebbe installare un server separata per gestire la messaggistica e nella tua app che desideri implementare un cliente con uno dei librerie .

Altri suggerimenti

Siete alla ricerca di un server "Comet". Dal momento che si sta parlando di PHP, la soluzione migliore sarebbe una soluzione SaaS, come ad esempio WebSync On-Demand , dal momento che PHP ha problemi con scala quando si tratta di un gran numero di connessioni simultanee che si terrà aperto. Vedi anche questa domanda .

Potrebbe avere una coda di messaggi condiviso che l'Ajax può interrogare? Forse è uno script PHP che memorizza la maggior parte del messaggio in memcached (e, eventualmente, scrivere al db in caso di guasto).

Non è sicuro, ma curioso di sentire altre soluzioni ...

Il problema di fondo è che è necessario implementare un server Comet (cioè Server Push implementare). I padroni di casa Web standard e apache non facilmente consentono di fare questo facilmente. Un'altra soluzione hosted (a parte Web Sync) è Goldfish Server . Attualmente gratuito.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top