2010-01-15 8 views
5

Sono interessato a un modo davvero ottimo di fare instant messaging come meebo e facebook e myspace hanno tutti, anche per le notifiche su una pagina. Esempio sul mio sito ora, quando un utente riceve un nuovo messaggio di posta, commento di foto, commento di profilo, richiesta di amicizia, altre cose, riceveranno un messaggio di notifica e un link nella pagina in cui stanno usando jQuery e AJAX.Il modo migliore per mostrare notifiche e messaggi LIVE su una pagina Web?

Credo su larga scala che questo non è il modo migliore per farlo anche se il mio codice jquery dovrà fondamentalmente eseguire uno script PHP per interrogare la tabella mysql ogni 30 secondi o giù di lì per ogni utente che ha la pagina apri con questo script in esecuzione. Vorrei infine aggiungere una sorta di messaggistica istantanea come Facebook in una chat nella parte inferiore dello schermo se riesco a trovare un modo efficace per farlo.

Ho sentito i termini Comet e HTML5 WebSockets ma non sono sicuro che queste siano le soluzioni che dovrei considerare per una funzione del genere? 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 di

risposta

1

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, contenuti syndication e routing generalizzato dei dati XML.

Faresti installa un separate server per gestire la messaggistica e nella tua app che desideri implementare un cliente con uno dei disponibili libraries.

1

Potrebbe avere una coda di messaggi condiviso che ajax può interrogare? Forse è uno script php che memorizza la maggior parte del messaggio in memcached (e possibilmente scrive in db in caso di errore).

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

2

Stai cercando un server "cometa". Dal momento che stai parlando di PHP, la soluzione migliore sarebbe una soluzione SaaS, come ad esempio WebSync On-Demand, poiché PHP ha problemi con il ridimensionamento quando si tratta di un gran numero di connessioni concorrenti mantenute aperte. Vedi anche this question.

0

Il problema di base è che è necessario implementare un server Comet (ad esempio implementare Server Push). Gli host web e gli apache standard non consentono facilmente di farlo facilmente. Un'altra soluzione ospitata (ad eccezione di Web Sync) è Goldfish Server. Attualmente libero.