Flex 4.5远程对象



我对flex中的远程管理非常陌生。我正在使用flex 4.5,并与团队中其他人使用AMF构建的web应用程序交谈。他们使用Zend_AMF来序列化和反序列化数据。

目前我面临的一个主要问题是,我需要与很多服务(大约60个左右)进行通信。

从我在网上和adobe看到的远程处理的例子来看,我似乎需要为每个服务定义一个远程处理对象:

<mx:RemoteObject id="testservice" fault="testservice_faultHandler(event)" showBusyCursor="true" destination="account"/>

有这么多的服务,我想我可能需要定义大约60个,我认为这不是很优雅。

同时,我一直在使用Pinta来测试AMF端点。Pinta似乎能够允许用户定义任意数量的服务、方法和参数,而不受这些限制。从资料中挖掘,我发现他们实际上已经深入到远程操作中,并且正在处理许多低级别的东西。

所以,问题是,有没有一种方法可以解决这个问题,而不必定义加载或远程对象,而不必太深入,开始不得不自己处理低级远程事件?

欢呼

一个应用程序需要那么多remoteobject似乎很不寻常。我曾经处理过非常大的应用程序,我们通常不会超过6-10个RemoteObject声明。

虽然你没有在你的帖子中给出很多关于RemoteObjects变化的细节,我怀疑你可能会混淆RemoteObjectOperation

您通常为应用程序中的每个端点声明一个RemoteObject实例。但是,该端点可以(通常也确实)公开许多要调用的不同方法。这些服务器端方法中的每一个都在客户端Operation中获得结果。

如果你愿意,你可以显式地声明这些,但是如果你不声明它们,RemoteObject会为你构建Operation s:

 var remoteObject:RemoteObject;
 // creates an operation for the saveAccount RPC call, and invokes it, 
 // returning the AsyncToken
 var token:AsyncToken = remoteObject.saveAccount(account); 
 token.addResponder(this); 
  //... etc

如果你与一个服务器层交互,你通常可以使用一个RemoteObject,指向API上的一个目标,这暴露了许多方法。这种方法通常被称为API farade,如果在API上有一个可靠的依赖注入规则支持,它会非常有用。

另一种常见的方法是按逻辑业务领域隔离API方法,例如:、AccountService、ShoppingCartService等。这样做的好处是能够混合&服务之间的协议匹配(例如。, AccountService可以在HTTPS上运行)。

如何选择拆分这些RemoteObjects取决于您。但是,在单个应用程序中使用60个字符听起来有点可疑。

相关内容

  • 没有找到相关文章

最新更新