Domanda

È possibile consentire al server Web di inviare un messaggio al browser Web senza Comet?

Ogni grande azienda web come Facebook e Google utilizza Comet per questo scopo e sembra proprio un brutto hack in attesa di scomparire se le connessioni tcp fossero abilitate per i principali browser.

È stato utile?

Soluzione

  

È possibile lasciare il web server   invia un messaggio al browser web   senza cometa?

Sì, è possibile tramite Silverlight, Flex, Flash e Applet Java.

  

Tutte le principali società web come Facebook   e Google utilizza la cometa per questo scopo   e sembra proprio un brutto hack   in attesa di scomparire se tcp   le connessioni sono state abilitate per maggiori   i browser.

Connessioni TCP su HTML 5 Web Socket non risolveranno il problema. Si vede che molte persone usano Google e Facebook dal proprio posto di lavoro, università o scuola e i firewall spesso bloccano porte non standard e traffico non HTTP. Quindi una soluzione che invia messaggi a un browser Web deve funzionare su HTTP e spesso assomiglia a HTTP. Ecco perché Google e Facebook usano Comet e continueranno a farlo altrimenti non saranno in grado di raggiungere una grande percentuale dei loro utenti. In effetti, alcuni firewall e proxy inversi chiuderanno connessioni HTTP di lunga durata e quindi una connessione di polling Ajax viene spesso utilizzata come fallback. Posso suggerire qualcosa come StreamHub Reverse Ajax se stai cercando un server in grado di inviare messaggi al browser tramite Reverse Ajax.

Altri suggerimenti

Perché pensi che Facebook e Google lo farebbero se ci fosse un altro modo?

Bene, OK, ci sono altri modi. È possibile incorporare un'applet Java nella pagina. Se l'applet Java è firmata e l'utente concede l'autorizzazione, potrebbe aprire una connessione di lunga durata affinché il server possa inviargli eventi. Ma questo ti renderebbe qualcosa che era più fragile, richiedeva più interazione con l'utente, era più lento per avviarsi e funzionava su un numero inferiore di piattaforme rispetto alla Comet.

Si è discusso dell'aggiunta di eventi inviati dal server e socket web su HTML5, ma è estremamente preliminare e probabilmente non lo farà diventare standard.

Come " Cometa " è un termine artificiale per tutto ciò che utilizza il protocollo http esistente per simulare una spinta di dati che temo non ci sia nulla da fare.

L'unica soluzione sarebbe un "miglioramento" del protocollo corrente o qualche soluzione basata su plugin probabilmente ampiamente usata ... per questo puoi usare java. Ma questo sorgerà altri problemi perché in pratica devi avere una connessione in entrata su quel browser disponibile.

La cometa può essere implementata solo come una chiamata ajax a lungo polling, quindi diventa una questione di semantica. Ecco, ad esempio, un plug-in jquery che implementa Comet usando il protocollo Bayeux in cima alla chiamata ajax di jQuery .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top