Flexアプリケーションで値を変更するときのDatagrid / arrayCollectionのライブ伝播
-
03-10-2019 - |
質問
私は、炎とフレックスの統合、いくつかのLCDSチュートリアル、モデル駆動型かどうかを示す多くのスクリーンキャストを見てきました。
プレゼンターが2つのブラウザを開くと、グリッドで1つの値を変更すると、データを提示する他のすべてのグリッドに伝播することがわかりました。
私はこれがどのように行われ、どのように再現するかを疑問に思っています。
この機能はEdge / LCDSソリューションに依存しますか?そうは思いませんが、それについて説明するコードを見たことがありません。
JMS / MQ /メッセージングプロトコルに依存している場合とそうでない場合があります。
ご意見をお寄せいただきありがとうございます。
乾杯、
エルナニ
解決
この機能は、BlazedsとLivecycle Data Servicesの両方で実装できます。 Blazedsはリモートとメッセージングの機能を提供します(メッセージング機能は、クライアント間でデータを同期させることができるものです)、LCDSはデータ管理(生産性の改善)、PDF生成、DMZゾーンを扱うエッジサーバーなどの新しい機能を追加する炎を拡張します)、 MDA開発、ポータル統合など。メッセージの混同、スロットリング、信頼性などの高度なメッセージング機能も追加されます。
Blazedsは無料でオープンソースであり、私の意見では、堅牢なソリューションであるため、クライアント間でデータを同期する場合は使用できます。 LCDSは多くのことを追加しますが、LCDSの顧客には大きな予算が必要です。
どのように機能しますか?この機能にはJMSの背後にはありません(ただし、BlazedsはJMSプロバイダーと統合でき、Broswserに1人のクライアントを使用でき、2番目のクライアントがスイングアプリケーションを実行できます)。代わりに、サーバーとパブリッシャー - サブスクライバーグラフにいくつかのメッセージキューがあります。クライアントからサーバーにデータをプッシュするために、いくつかの選択肢があります。HTTPPOLLING、HTTP LONG POLLING、HTTP STREANING、RTMP SOCKETS(LCDSのみ)のLCDでのみ高度に利用可能です。それらはすべて詳細に説明されています デイモン ブログ。
いくつかのコードを見たい場合は、移動してダウンロードしてください 炎 サンプルをご覧ください。メッセージング機能を示すサンプルがいくつかあります。また、ダウンロードにTomcatサーバーがバンドルされており、サンプルはすでに展開されています。
他のヒント
これを行うには、サーバーがクライアントにデータを押し戻すことができるように、クライアントとサーバーの間のオープンソケット接続を維持する必要があります。
RTMPプロトコルは、この双方向通信に使用されたと思います。
これが、炎上よりもLivecycle Data Servicesを使用する主な理由であることを理解しています。 Weborbには、Granitedsと同様に、プッシュ機能もあります。また、これがColdFusionで行われるデモを見ました。
これらのオプションがいずれも利用できない場合、リモートサーバーに何らかのポーリングを行っています。
残念ながら、共有する特定のコードサンプルはありません。
Weborbを使用してこれを行う方法を示す簡単なサンプルは、ここにあります: http://www.kensodev.com/2009/11/01/synchronize-client-application-using-flexweborb-net/
そのサンプルは、.NETのWeborb 3に基づいています。 Weborb 4が.NETとJavaの両方で利用可能になりました。
ポイントの存在:これは、Weborbを使用して脳を必要としています。これは無料です(ただし、有料エンタープライズバージョンも利用できます)。神は、この機能を取得するためだけに、誰もがLCDのために3万ドルを払うべきだと禁じています。
---ジムプラモンドン、ミッドナイトコーダー(ウェボルのメーカー)