Senza discutere specificamente quadri o sapere che cosa è in esecuzione nel backend del server (s), abbiamo alcune opzioni da considerare per il frontend:
WebSockets
WebSockets sono progettati per bidirezionale comunicazione, anche se è un po 'scioccante il numero di utenti che navigano sul Web in un browser che non supporta le web socket. Raccomando sempre un fallback per questo, come gli altri metodi elencati di seguito.
SSE
SSE è una specifica HTML5 ed è ancora traballante al meglio. Prova a scorrere su una pagina mentre un evento SSE si attiva ... Potrebbe essere un po 'più facile sul backend, metterlo a volte sul lato client poiché viene eseguito all'interno dello stesso thread in cui viene eseguito il DOM.
Polling lungo
Mantiene aperta la connessione. E non scala bene con PHP, ma si esibisce a meraviglia con Python + ritorto sul backend, o Node.JS
Good Old Ajax
Tenere le richieste piccole, e si dispone ancora di una soluzione scalabile. Sì, una richiesta GET completa è la più costosa, ma è supportata in quasi tutti i browser lanciati negli ultimi dieci anni. Vale anche la pena notare che le richieste GET sono facili da scalare orizzontalmente con più hardware.
In un mondo perfetto:
Si potrebbe rompere l'applicazione in pochi componenti, che operano dietro un proxy inverso, come Nginx. Quindi usa Node.Js + Socket.IO per gestire gli aspetti realtime della tua app.
Un'altra opzione potrebbe essere l'utilizzo di richieste Ajax di piccole dimensioni e il supporto di Websocket per i browser che lo supportano. Questo è un consiglio specifico per PHP nel backend.
Si dispone di un polling AJAX lungo, che si rivelerà quasi efficiente quanto le web-socket nel tuo caso; supponendo che i sensori non siano attivati spesso. I WebSocket non sono "eccessivi", direi, e le richieste AJAX non sarebbero troppo inefficienti se si considera un piccolo numero di utenti. – Matt
forse http://signalr.net/ – Raidri
suggerisco anche signalr.net .. giusto ora in beta ma è troppo bello ... –