2010-09-29 16 views
1

我正在使用Mate的RemoteObjectInvoker在基於FluorineFX的API中調用方法。但是,所有請求似乎都被髮送到服務器的順序性。也就是說,如果我同時發送一組消息,則第二個消息要等到第一次返回時才發送。無論如何改變這種行爲?我不希望我的應用程序在長時間處理請求時沒有響應。在配合中,同時發送兩個或更多請求到服務器?

回答

1

This線程將幫助你理解發生了什麼(它談論blazeds/livecylce,但我認爲氟正在使用相同的方法)。簡而言之,發生的情況是: a)Flash播放器將所有呼叫分組到一個HTTP帖子中。 b)服務器(BlazeDs,Fluorine等)接收到請求並開始依次執行這些方法。

a)擁有每一個方法HTTP發佈,而不是包含所有AMF消息的一個HTTP發佈。爲此,您可以使用HTTPChannel而不是AMFChannel(內部使用的是flash.net.URLLoader而不是flash.net.NetConnection)。您將被限制爲由瀏覽器定義的最大並行連接數。

b)只有一個HTTP帖子,但在服務器上實現了一個聰明的解決方案(這會花費你很多的開發時間)。基本上,您可以編寫自己的並行處理器,並使用消息使用者/發佈者將您的方法結果發送給客戶端。

c)在https://bugs.adobe.com/jira/browse/BLZ-184上有類似於a)的解決方法 - 手動創建remoteobject,並在端點末尾附加一個隨機ID。