在Mate中,同时向服务器发送两个或多个请求?

时间:2010-09-29 17:31:25

标签: flex flash actionscript-3 mate

我正在使用Mate的RemoteObjectInvoker来调用基于FluorineFX的API中的方法。但是,所有请求似乎都被发送到服务器序列。也就是说,如果我同时发送一组消息,则在第一次返回之前不会发送第二个消息。反正有改变这种行为吗?我不希望我的应用程序在处理长请求时没有响应。

1 个答案:

答案 0 :(得分:1)

This线程将帮助您了解会发生什么(它谈论blazeds / livecylce但我认为Fluorine使用相同的方法)。简而言之,会发生什么: a)Flash播放器将您的所有呼叫分组到一个HTTP帖子中。 b)服务器(BlazeDs,Fluorine等)接收请求并开始一个接一个地连续执行这些方法。

解决方案

a)每个方法都有一个HTTP帖子,而不是一个包含所有AMF消息的HTTP帖子。为此,您可以使用HTTPChannel而不是AMFChannels(内部使用flash.net.URLLoader而不是flash.net.NetConnection)。您将受限于浏览器定义的最大并行连接数。

b)只有一个HTTP帖子,但在服务器上实现了一个聪明的解决方案(它将花费你很多开发时间)。基本上,您可以编写自己的并行处理器并使用消息使用者/发布者将结果发送给客户端。

c)在https://bugs.adobe.com/jira/browse/BLZ-184上有类似a)的解决方法 - 手动创建远程对象并在端点末尾添加随机ID。