Il “long polling” è il modo più efficiente per creare una Web Real Time App?
-
19-09-2019 - |
Domanda
Voglio creare un'applicazione come questa:
Qual è il modo più efficiente per creare questa applicazione in tempo reale?
Veloce?Sondaggi lunghi?Streaming HTTP?o qualcos'altro?
Grazie ;)
Soluzione
Per il momento, lungo polling è probabilmente la soluzione migliore. Molti siti di grandi nomi hanno implementazioni di polling lungo, tra cui Facebook, Google e eBay. Non tutti hanno installato Flash / attivato nei loro browser. In futuro Sockets Web potrebbe essere in grado di fare un lavoro più facile di esso per noi.
Aggiornamento: in cui scriviamo, il WebSocket API è implementato nell'ultima WebKit (Chrome / Safari) e Firefox 4 beta. C'è anche una fotografia di build pubblica di Opera disponibile per il download con un'implementazione delle API. Ciò significa testare l'API è ampiamente disponibile. Per ulteriori informazioni, vedere questa risposta .
Altri suggerimenti
Tutti i diversi metodi hanno diversi pro e contro, non sono uno specialista delle differenze, ecco perché ti consiglierò evitare di fare la scelta, evitare lo sviluppo e la messa a punto che ciascun approccio comporta, evitare i futuri cambiamenti nelle tecnologie disponibili (es.come arrivo dei web socket HTML5), utilizzando una libreria che astrae il metodo di trasporto utilizzato, e sceglie l'approccio migliore in base alle capacità del cliente:
questa meravigliosa libreria rende la creazione di app in tempo reale incredibilmente semplice!e ci sono varie implementazioni lato server:Python (Tornado), Java, Google GO, Rack (Ruby), oltre all'implementazione mainstream in Node.js (JavaScript lato server)
Non credo che a lungo polling è il modo più efficace per farlo Comet. In ogni caso, invia nuova richiesta HTTP dopo la risposta è ottenuto. È costato richieste HTTP più extra di HTTP streaming.
Ma, a lungo polling potrebbe essere più affidabile e più facile da implementare rispetto HTTP streaming. In base a questo articolo Google Code , HTTP Streaming potrebbe non funzionare se proxy HTTP intermedio buffer contenuti.
E 'interessante che Gmail non uso a lungo polling. Con l'aiuto di Http sniffer, è chiaro che usa HTTP streaming Comet.