Mysql
 sql >> Database >  >> RDS >> Mysql

Conto alla rovescia Javascript e PHP che mostra lo stesso per tutti

Sembra che avrai bisogno di un COMET/Push soluzione che ti consentirà di monitorare i clienti attivi e di inviare loro nuovi dati. Non sono sicuro che PHP sia la soluzione migliore per questo in quanto ci sono altri linguaggi di programmazione che gestiscono questo in modo più elegante.

Vedi:Usi la cometa con PHP?

Altri potrebbero non essere d'accordo, ma Node.js è un'eccellente soluzione emergente a questo particolare tipo di problema. Combina Node.js con Socket.io e hai gli strumenti di base per implementare esattamente ciò che stai descrivendo.

In poche parole, un'applicazione client invierà una richiesta AJAX a un server. Il server manterrà quindi la richiesta finché non avrà qualcosa da restituire (nel tuo caso:timer avviato, timer spuntato, timer in pausa, ecc.). Non appena i dati vengono restituiti, verrà effettuata un'altra richiesta e trattenuta dal server ripetendo così il processo. Se il tuo server e client supportano WebSockets , le connessioni AJAX in attesa possono essere evitate a favore di una connessione WebSocket (TCP su HTTP).

Poiché non tutti utilizzano l'ultima versione di Chrome/Firefox, probabilmente dovrai supportare più metodi push per essere compatibile con più browser. Socket.io astrae il livello di comunicazione (Comet - long polling, WebSockets, Adobe Flash Socket, Ajax multipart streaming, Forever Iframe, JSONP Polling) e sceglie la migliore tecnologia in base alle capacità del browser del client.

Alternativa

Puoi anche usare un intervallo javascript per interrogare periodicamente il server (tramite AJAX) per vedere se il timer è stato impostato. Tuttavia, potresti inondare il tuo server di richieste poiché ogni client eseguirà costantemente il polling del server per determinare se il timer di 60 secondi è iniziato.