Comet: meglio il push del poll ?

Luglio 9th, 2006

Purtroppo ultimamente non ho molto tempo per aggiornare, siamo sommersi di lavoro e sto facendo un po’ di consulenze in banca, rassicuratevi comunque, non sono usciti grandissimi prodotti o librerie in questo periodo estivo :)
Voglio invece parlarvi di Comet, un nuovo approccio “alternativo” ad Ajax per aggiornare dinamicamente le pagine web. Come ben sapete Ajax effettua sostanzialmente il così detto polling, ogni tot secondi cioè contatta il server e verifica se ci sono dati da aggiornare. Quest approccio è sicuramente comodo ma ha alcuni svantaggi, primo fra tutti un’alta inefficienza in particolari situazioni e la creazione di molte connessioni sul server: una per ogni richiesta di informazioni.
Ormai diversi mesi fa, Alex Russel di Dojo ha proposto un approccio alternativo chiamato Comet di cui sono disponibili le slide di presentazioni. Comet parte da un presupposto diverso, invece di effettuare il polling apre un’unica connessione col server, la mantiene aperta ed aspetta che sia il server ad effettuare un push di informazioni non appena cen’è bisogno.
Il concetto è molto interessante ed in alcuni ambiti può portare ad un’esperienza utente molto più confortevole rispetto ad Ajax. Se volete vedere qualche bella demo sull’uso di comet vi consiglio di guardare gli esempi di lightstreamer.
Ci stiamo giocando un po’ questi giorni qui in Creative Web ed i risultati sono decisamente incoraggianti, probabilmente inseriremo il supporto di Comet nella prossima release del nostro framework di sviluppo. Purtroppo resta qualche problema di compatibilità cross browser a causa di alcune limitazioni di Explorer. Il problema è comunque risolvibile con vari workaround.

Technorati Tags: ,

Entry Filed under: Esempi Ajax, Articoli e novità su Ajax

8 Comments Add your own

  • 1. Gabriele  |  Luglio 10th, 2006 at 11:00 am

    Comet pare interessante. l’unica cose è che PUSH dovrebbe essere una specifica di protocollo non implementato da IE. Hai idea di come funzioni l’emulazione di PUSH su IE ?

  • 2. Alessandro Alinone  |  Luglio 15th, 2006 at 2:42 am

    Grazie per la citazione di Lightstreamer. Vi ricordo tra l’altro che Lightstreamer è al 100% made in Italy e ci sta dando parecchie soddisfazioni all’estero (in particolare USA e UK).
    Vi segnalo inoltre la disponibilità online delle slide su Comet che ho presentato in occasione della Java Conference 2006:

    http://www.lightstreamer.com/docs/Lightstreamer-JavaConf06.pdf

  • 3. Mone  |  Agosto 2nd, 2006 at 10:25 pm

    Ciao, scusa l’intromissione.

    Ma state facendo un’integrazione col web client di Lightstreamer o un client comet generico?
    Su che protocollo vi basate nel secondo caso?
    Che problemi state avendo?

  • 4. Administrator  |  Agosto 5th, 2006 at 2:47 pm

    In effetti con Internet Explorer c’è qualche problemino in più nell’implementazione di Comet utilizzando XHR ci sono tuttavia dei workaround se si vuole utilizzare questo sistema o, alternativamente, si può ripiegare su un “loading” infinito di una pagina dentro un iframe senza utilizzare XmlHttpRequest. L’ideale sarebbe utilizzare dei sistemi di fallback a seconda del browser.

    Per il momento abbiamo testato un’implementazione in Javascript puro senza XHR e il problema più fastidioso è che su firefox l’icona del mouse resta sempre in caricamento anche utilizzando un iframe nascosto. Mi pare comunque che il problema sia aggirabile ma purtroppo Comet resta comunque una tecnologia molto sperimentale e di fatto è una forzatura di alcuni comportamenti particolari dei browser. Ajax è sicuramente una tecnologia più standard e matura.

    Un’alternativa decisamente più semplice ed efficace è utilizzare un piccolo swf flash col quale aprire una connessione socket verso il server e poi passare le informazioni a javascript. Questa soluzione funziona decisamente meglio ma ovviamente si perde un po’ di compatibilità per l’uso di Flash.

  • 5. Mone  |  Agosto 8th, 2006 at 12:40 pm

    Quindi state implementando la parte client… che server usate?
    Non so se interessa, ma previa registrazione ora è possibile scaricare una versione trial di lightstreamer: http://www.lightstreamer.com/vb/register.php

    Ci sarà anche una versione free, presumibilmente dopo l’estate.
    Ciao!

  • 6. Administrator  |  Agosto 25th, 2006 at 4:01 pm

    Si stiamo implementando la parte client principalmente per il server vedremo più avanti, tendenzialmente il nostro prodotto d iIntranet ha un demone di sistema e sarà lui a gestire gli stream ma ancora non abbiamo riflettuto molto su questa cosa. Light Streamer è un ottimo prodotto ma penso che lo valuteremo nel caso ce lo richieda qualche banca o grande azienda, per un uso “comune” dove non c’è uno stream forsennato di dati realtime penso sia un po’ eccessivo (penso, non l’ho mai provato a parte le demo sul sito e qualche racconto che ci han fatto i tecnici di alcune banche per cui facciamo consulting).

    Ciao
    Div

  • 7. Massimiliano  |  Novembre 8th, 2007 at 10:24 pm

    Ho scaricato ligthstreamer versione moderato e l’ho provato veramente molto carino e semplice da usare. L’unico inconveniente(o almeno se ho ben capito..) è che gestisce il push solo con dati di tipo testo. Io avrei voluto usarlo anche per aggiornare delle immagini dinamicamente senza fare il polling da client. Mi chiedo è possibile farlo eventualmente anche con altri framework??

    Saluti MAX

  • 8. Enrico  |  Maggio 13th, 2008 at 6:56 pm

    Qui ho spiegato in breve come ho implementato comet per un mio cliente UK:
    http://www.rubboli.it/articles/2008/05/13/comet-un-passo-avanti-ajax-2

    spero possa interessare.
    Saluti,
    Enrico

Lascia un Commento

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Calendar

Dicembre 2008
L M M G V S D
« Mar    
1234567
891011121314
15161718192021
22232425262728
293031  

Most Recent Posts