Sto avendo lo stesso dilemma sulla mia applicazione flex.
Sembra che il modo migliore per risolvere questo problema sia mantenere un intervallo di alcuni secondi tra server e client e forzare il polling dello stato su ciascun client.
Ho fatto il seguente approccio, si noti che questo non risolve la situazione fuori sincrono, riduce solo significativamente la situazione possibile che si verifichi.
Ho sul lato server, una cache di ogni chiamata di raccolta. Ho sul lato client, per istanza di applicazione, una cache delle stesse collezioni.
L'istanza uno carica una serie di oggetti in una griglia. (Crea uno stato iniziale della raccolta con il server)
L'istanza due carica e apporta modifiche, inoltra i dati modificati al server, le informazioni di db sono persistenti e la cache del server viene ricostruita. (la cache del client mantiene anche la sua cache locale che non richiede di chiamare nuovamente la raccolta del server.
L'istanza uno non è sincronizzata. (sarà sincronizzato al successivo intervallo di polling) l'istanza due è sincronizzata perché è l'app responsabile delle modifiche.
Entrambe le istanze eseguono il polling del server di volta in volta, ad esempio un intervallo di 10 secondi per le modifiche. (Se la cache lato server ha subito modifiche, che porterà le nuove informazioni a tutti i clienti sulla chiamata successiva intervallo.)
Se non ci sono cambiamenti a livello lato server, senza informazioni viene inviato ad un cliente già registrato. (Ciò significa che non viene scambiato informazioni tra server e client, riducendo il carico.)
Se un terzo cliente entra, è stato è fresco ed effettuerà le chiamate necessarie per costruire la sua attuale della cache pure.
C'è un ritardo, ma sicuramente aiuta a propagare le modifiche al client.
Il problema è che il client consuma memoria aggiuntiva mantenendo lo stato della cache.
sto facendo questo in un per schermo situazione, una volta che lo schermo è fuori di vista, la cache del client viene reso nullo, una volta che sullo schermo è chiamato ancora una volta, locali la cache viene creata e il timer parte e inizia il polling.
Speranza che aiuta,
Ernani
checkout questa presentazione su OT e leggere di più su - http://docs.google.com/present/view?id=dggjrx3s_1573xdhxprd – Anurag