我看过很多演示 blazeds 和 flex 之间集成的截屏视频,还有一些 lcd 教程,无论是否是模型驱动的。
我发现其中一些演示者会打开 2 个浏览器,一旦您更改网格中的一个值,它就会传播到呈现数据的所有其他网格。
我想知道这是如何完成的,以及如何重现。
此功能是否依赖于 Edge/LCDS 解决方案?我不这么认为,但我从未见过一些解释它的代码。
我觉得它可能依赖也可能不依赖 JMS/MQ/消息传递协议(protocol),或者这是否是同一服务结果的实例之间的某种双向同步和集合传播。
感谢您的任何意见。
干杯,
埃尔纳尼
最佳答案
您可以使用 BlazeDS 和 LiveCycle Data Services 来实现此功能。 BlazeDS 提供远程和消息传递功能(消息传递功能允许您在客户端之间同步数据),LCDS 扩展了 BlazeDS,添加了新功能,如数据管理(生产力改进)、PDF 生成、用于处理 DMZ 区域的 EDGE 服务器)、 MDA 开发、门户集成等。它还添加了一些高级消息传递功能,如消息合并、限制、可靠性。
BlazeDS 是免费且开源的,在我看来是一个强大的解决方案,如果您想在客户端之间同步数据,您可以使用它。 LCDS增加了很多东西,但是LCDS客户应该有很大的预算。
它是如何工作的?此功能背后没有 JMS(但是 BlazeDS 可以与 JMS 提供程序集成,因此您可以在浏览器中拥有一个客户端,而第二个客户端运行 SWING 应用程序)。相反,服务器上有一些消息队列和发布者-订阅者图。为了将数据从客户端推送到服务器,有多种选择,更高级的选项仅在 LCDS 上可用:HTTP 轮询、HTTP 长轮询、HTTP 流、RTMP 套接字(仅限 LCDS)。所有这些都在Damon中有详细描述。博客。
如果您想查看一些代码,请下载 BlazeDS看看示例,有几个示例显示了消息传递功能。下载中还捆绑了一个 tomcat 服务器,并且示例已部署在其中。
关于java - 在 Flex 应用程序中更改值时实时传播 DataGrid/ArrayCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2876871/