C'è una differenza tra a lungo polling e l'utilizzo di Comet
-
24-09-2019 - |
Domanda
Io sono l'attuazione di un sistema in cui ho bisogno di aggiornamenti in tempo reale. Sono stato a guardare in certi scenari e fra tutto era Comet. L'implementazione di questo non vedo alcun modo questo è diverso dal tradizionale lungo-polling.
In entrambi i casi è necessario inviare una richiesta, e quindi il server invia una risposta indietro. Nel browser a interpretare la risposta e poi si inizia una nuova richiesta.
Quindi, perché dovrei usare cometa se in entrambi i casi ho bisogno di aprire e chiudere le connessioni.
Soluzione
tecniche Comet non richiedono che costantemente aprire nuove richieste (l'iframe nascosto Chunked, per esempio), l'idea è di tenere la richiesta di apertura e hanno il server di invio periodico dei dati. Ma questo non funziona bene in tutti i principali browser, senza (come uno collaboratore Wikipedia delicatamente messo) effetti collaterali negativi, quindi la tecnica a lungo polling. Più nel articolo collegato.
Altri suggerimenti
Come indicato da Marcelo, Comet viene solitamente usato per descrivere qualsiasi tecnica per "HTTP streaming", tra cui a lungo polling. In alcuni casi, Comet potrebbe anche riferirsi più specificamente alla Bayeux protocollo . Per esempio, il jQuery Comet plugin è di questo protocollo. Dal sito Bayeux:
Consegna di messaggi asincroni dal server a un client web è spesso descritta come server push. La combinazione di tecniche server push con un'applicazione web Ajax è stato chiamato Comet. CometD è un progetto della Fondazione Dojo per fornire più implementazione del protocollo Bayeux in diversi linguaggi di programmazione.
Bayeux è un tentativo di standardizzare un publish / subscribe protocollo utilizzando tecniche Comet, permettendo ai fornitori di librerie lato server client e per la creazione di componenti interoperabili.
Comet è un termine generico per una vasta gamma di tecniche di aggiornamento asincrone, di cui a lungo polling è solo uno.
Se si vuole spingere insteal di tirare, è possibile utilizzare GPE .