代码之家  ›  专栏  ›  技术社区  ›  Ernani Joppert

在flex应用程序中更改值时实时传播DataGrid/ArrayCollection

  •  0
  • Ernani Joppert  · 技术社区  · 14 年前

    我看过一系列的屏幕显示,演示了Blazeds和Flex之间的集成,还有一些LCD教程,不管是模型驱动的还是非模型驱动的。

    我已经看到演示者打开了两个浏览器,一旦在网格中更改了一个值,它就会传播到显示数据的所有其他网格。

    我想知道这到底是怎么做到的,以及如何复制。

    此功能是否取决于EDGE/LCD解决方案?我不这么认为,但我从来没有见过一些代码解释它。

    我觉得它可能依赖于或可能不依赖于JMS/MQ/消息传递协议,或者如果这是某种在相同服务结果的实例之间进行的双向同步和收集传播。

    感谢您提供任何信息。

    干杯,

    埃尔纳尼

    3 回复  |  直到 14 年前
        1
  •  4
  •   Cornel Creanga    14 年前

    您可以通过Blazeds和LiveCycle数据服务实现此功能。Blazeds提供了远程和消息传递功能(消息传递功能允许您在客户端之间同步数据),LCD扩展了Blazeds,添加了数据管理(生产力改进)、PDF生成、用于处理DMZ区域的边缘服务器、MDA开发、门户集成等新功能。高级消息传递功能,如消息合并、限制和可靠性。

    Blazeds是免费和开源的,在我看来,它是一个强大的解决方案,如果你想在客户机之间同步数据,你可以使用它。液晶显示器增加了很多东西,但是液晶显示器的客户应该有很大的预算。

    它是如何工作的?此功能没有JMS(但是Blazeds可以与JMS提供程序集成,这样您就可以在Broswser中拥有一个客户机,而第二个客户机运行Swing应用程序)。相反,服务器和发布服务器订阅服务器图形上有一些消息队列。为了将数据从客户机推送到服务器,有几种选择,更高级的选择仅在LCD上可用:HTTP轮询、HTTP长轮询、HTTP流、RTMP套接字(仅限LCD)。所有这些都详细描述在 Damon 博客。

    如果你想看一些代码,去下载 BlazeDS 看看这些示例,有几个示例显示了消息传递功能。此外,下载中还捆绑了一个Tomcat服务器,并且示例已经部署在其中。

        2
  •  1
  •   JeffryHouser    14 年前

    要做到这一点,您需要在客户机和服务器之间保持一个开放的套接字连接,以便服务器可以将数据推回到客户机。

    我相信RTMP协议用于这种双向通信。

    我知道这是在Blazeds上使用LiveCycle数据服务的主要原因。Weborb也有推送功能,Graniteds也有。我也看过演示,在那里用ColdFusion完成。

    如果这些选项中没有一个对您可用,那么您将无法对远程服务器进行某种轮询。

    不幸的是,我没有要共享的特定代码示例。

        3
  •  0
  •   JimPlamondon    14 年前

    下面是一个简单的示例,演示如何使用Weborb执行此操作: http://www.kensodev.com/2009/11/01/synchronize-client-application-using-flexweborb-net/

    该示例是基于.WebRB 3的.NET;WebRB 4现在可以使用,对于.NET和Java都是可用的。

    要点是:使用Weborb非常简单,它是免费的(尽管也有付费企业版)。上帝禁止任何人为了得到这个功能而花3万美元购买液晶显示器。

    ——Jim Plamondon,午夜编码员(Weborb的制造商)

    推荐文章