propagation en direct de DataGrid / ArrayCollection lors de la modification dans l'application Flex

StackOverflow https://stackoverflow.com/questions/2876871

Question

J'ai vu un tas de screencasts démontrant l'intégration entre BlazeDS et flex, aussi quelques tutoriels lcds, piloté par les modèles ou non.

Je l'ai vu que certains d'entre eux le présentateur ouvre 2 navigateurs et une fois que vous modifiez une valeur dans une grille, il se propage à tous les autres grilles qui présente les données.

Je me demande comment diable cela est fait, et comment reproduire.

Est-ce cette fonction dépend de l'Edge / solution LCDS? Je ne pense pas, mais je ne l'ai jamais vu un code expliquant à son sujet.

je pense qu'il peut ou ne peut pas compter sur JMS / MQ / protocoles de messagerie ou si cela est une sorte de 2 voies de synchronisation et la propagation de la collecte entre les instances du même résultat de service.

Merci pour toutes les entrées.

Cheers,

Ernani

Était-ce utile?

La solution

Vous pouvez implémenter cette fonctionnalité à la fois avec BlazeDS et LiveCycle Data Services. BlazeDS fournit à distance et des fonctions de messagerie (les fonctions de messagerie est celle qui permet de synchroniser les données entre les clients), LCDS étend BlazeDS en ajoutant de nouvelles fonctionnalités telles que la gestion des données (amélioration de la productivité), la génération de PDF, serveur EDGE pour traiter les zones DMZ), développement MDA, intégration de portail, etc. Il ajoute aussi quelques fonctionnalités avancées de messagerie comme conflation de message, la limitation, la fiabilité.

BlazeDS est libre et open source et à mon avis, une solution robuste, vous pouvez l'utiliser si vous souhaitez synchroniser les données entre les clients. LCDS ajoute beaucoup de choses, mais les clients LCDS devrait avoir un budget important.

Comment ça marche? Il n'y a pas JMS derrière cette fonction (mais BlazeDS peut intégrer avec un fournisseur JMS de sorte que vous pouvez avoir un client dans broswser et la deuxième exécution d'une application SWING). Au lieu de cela il y a des files d'attente de messages sur le serveur et un éditeur - graphique d'abonné. Afin de pousser les données des clients vers le serveur il y a plusieurs choix, les plus avancés ne sont disponibles que sur LCDS: HTTP interrogation, HTTP longue interrogation, HTTP en continu, prises RTMP (LCDs seulement). Tous sont décrits en détail sur le blog de Damon.

Si vous voulez voir go code et télécharger BlazeDS et prendre un regard sur les échantillons, il y en a plusieurs montrant les fonctions de messagerie. Il y a aussi un serveur tomcat est fourni dans le téléchargement, et les échantillons sont déjà déployés en elle.

Autres conseils

Pour ce faire, vous devez garder une connexion socket ouvert entre le client et le serveur afin que le serveur peut envoyer des données au client.

Je crois que le protocole RTMP a été utilisé pour cette communication bidirectionnelle.

Je comprends que c'est la principale raison d'utiliser LiveCycle Data Services sur BlazeDS. WebORB a également la fonctionnalité push, tout comme GraniteDS. J'ai aussi vu des démos où cela se fait avec ColdFusion.

Si aucune de ces options sont disponibles pour vous, vous êtes coincé faire une sorte de vote au serveur distant.

Malheureusement, je ne dispose pas d'exemples de code spécifiques à partager.

Un simple échantillon montrant comment le faire en utilisant WebORB se trouve ici:      http://www.kensodev.com/ 2009/11/01 / Synchronize-client-application à l'aide-flexweborb-net /

Cet échantillon est basé sur 3 WebORB pour .NET; WebORB 4 est maintenant disponible, pour les deux .NET et Java.

Point étant: est simple de mort cérébrale à l'aide WebORB, qui est gratuit (même si une version payante Enterprise est également disponible). Dieu ne plaise que tout le monde devrait débourser 30K $ pour LCDS juste pour obtenir cette fonctionnalité.

--- Jim Plamondon, Minuit Coders (fabricants de WebORB)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top