A giudicare dai commenti di altre risposte che sto detto perché, e un po 'che cosa, ma non ti danno una soluzione perché vedo una tonnellata di soluzioni nella barra laterale "Related". Dovrai scegliere quello giusto e conoscendo "il perché" sarai in grado di prendere una decisione istruita.
Perché la chat abbia ragione, ci deve essere un po 'di immediatezza per le risposte. Un ritardo di un secondo nel tempo sarà visibile agli utenti nel tempo e darà un senso di intempestività. Per fare in modo che le risposte immediate o "in tempo reale" funzionino in un browser richiede una connessione persistente, in modo che quando arrivano nuove informazioni, si presenti immediatamente.
Le connessioni persistenti nei browser sono difficili a causa delle specifiche di richiesta/risposta di HTTP. Ci sono specifiche nel lavoro per portare connessioni persistenti ai browser ma quei browser non sono onnipresenti. In futuro le connessioni persistenti saranno fornite da WebSockets e SPDY, entrambe disponibili nelle ultime versioni di Chrome, Safari e FireFox con IE in ritardo.
Un'altra opzione per le connessioni permanenti è XMPP. XMPP è il protocollo utilizzato per il client di chat Jabber. Poiché si tratta di un'implementazione open source, è stato portato a molti altri usi. Esistono librerie JavaScript che consentono di connettere un browser a un socket XMPP e ascoltare nuovi messaggi. Il metodo che ho visto in passato è quello di inviare i messaggi al server web, e poi fare in modo che il server Web comunichi al server XMPP il nuovo messaggio che trasmette poi il nuovo messaggio a tutti gli utenti. Tuttavia, ciò richiede un server XMPP che sollevi la complessità del sistema.
La maggior parte degli utenti non è al limite delle versioni del browser, quindi sarà necessario essere in grado di gestire i browser meno recenti. La maggior parte delle alternative comporta l'apertura di una lunga connessione al server che risponde quando arrivano nuovi dati.Ecco un elenco dei metodi per la simulazione di una connessione permanente a browser più vecchi:
- Adobe Flash Socket
- ActiveX htmlfile (IE)
- Eventi Server-Sent (Opera)
- XHR con la codifica multipart
- XHR con-polling lungo
Questi metodi più anziani, e WebSockets, sono supportati da una libreria chiamata Juggernaut.
UPDATEJuggernaut has been deprecated by the maintainer, per una buona ragione: i browser moderni supportano le connessioni persistenti fuori dalla scatola (con l'eccezione di IE, ovviamente) attraverso una specifica chiamata Eventi Server-Sent (SSE). La retrocompatibilità è ora gestita dai polyfill (What is a polyfill?) e, come le note sui post di deprecazione, ce ne sono un paio di buoni per portare l'SSE sui browser legacy.
Deve essere PHP? Deve essere XMPP? – Sixty4Bit
@ Sixty4Bit scusa per il ritardo nel rispondere a voi. Deve essere PHP, non * deve essere * XMPP – P3tro
Perché non provare mibew? Questo è in PHP e funziona bene. – Tanmay