標籤:http io os 使用 java ar for 檔案 資料
Flex資料互動方法- httpservice, webservice, RemoteObject, socket.
寫在前面:
使用SOAP Web Service同Flex互動有很多好處,但是它很慢, 使用定製化XML好一點,卻不標準化.
那麼最好的ASP.Net 和flex互動方法是什麼?
1. HTTPService 實際上應該叫做XML via HTTPService, 就是用get和post方式進行資料轉送,同平常的web form提交大致一 樣.好處就是很簡單,通用性高. 不管你用asp,jsp, 還是XXP, 任何可以產生標準XML的程式都可以和你的Flex程式進行互動. 處理大量資料時, 速度慢, 下面是個簡單的例子:
登入 http://www.helloria.com/showtopic.aspx?topicid=37&forumpage=1&page=1#53
2. WebService 通用的叫做SOAP, 用datatable返回資料, 沒有內建的Paging功能.不直接返回dataset. 並且大型資料互動速度慢.但,它是比較通用的介面, 大多伺服器通訊都支援, 不過伺服器端實現起來比較複雜.
3. Remoting 基於AMF的資料互動, 速度以及效能是最好的. 支援dataset和datatable, 以及OR mapping工具. Fast, reliable and secure, 需要一個Flex Remoting Gateway來做資料de/seralization.
優點:
1).傳輸資料類型比較豐富。
2).可以支援AMF0,AMF3兩種資料封裝類型,AMF3是Flash Player 9或更進階才能支援,有了AMF3,可以直接傳送二進位檔案流資料。
3).傳輸效率相對比較高。
4).對各種背景支援也比較好。
FDS(LCDS) - 是Adobe主推的FlashRemoting服務端,功能強大(當然也支援AMF0,AMF3格式, java和net平台都支援),品質也不錯,可惜這個是需要銀子的。
Blazeds - 是Adobe另外一個開源的FlashRemoting項目,基於Java平台的,支援AMF0,AMF3格式
Amfphp - 一種基於PHP的RPC工具,支援FlashRemoting中AMF0和AMF3兩種格式,開源項目。
Openamf - 一種基於Java的FlashRemoting開源項目,目前只支援AMF0格式。
GDS(Granite Data Services) - 也是一個基於Java平台的FlashRemoting項目,支援AMF3的。
WebORB - 一個支援.net,java,php,ruby等開發平台的FlashRemoting項目,也支援AMF0和AMF3。
FluorineFx - 一個支援.net開發平台的FlashRemoting開源項目, AMF0, AMF3 ,RTMP, RTMPT 。
缺點:
1).需要後台服務端裝相應版本的Flash Remoting模組才可以使用。
2).如果使用虛擬機器主機的話配置起來比較麻煩。
4. Socket: 沒什麼說的,基於socket通訊的,這也是flash和傳統web開發中,通訊方式最不同的地方,socket可以建立持久串連,因此可以用來做網遊,多人聊天,視頻等應用。
什麼是AMF? AMF0, AMF3 做Flex RIA互動的都知道有3種資料互動方式, HttpService, WebService 和remoting.
大家又公認Remoting是最有效率的方法!
那麼Remoting為什麼會更有效率呢, 這就涉及到資料封裝格式.
AMF是Adobe獨家開發的資料封裝格式, AMF(Action Message Format) binary format. Remoting傳輸這種壓縮的資料格式, 而且傳輸的的資料還包括ByteArray等多種形態( 參考AMF3 Specification).
Flash可以直接存取, 並且由於它是基於二進位的資料轉送,所以相對於xml SOAP、json、webService等基於字串的資料格式,有資料體積小和效率高的特點。
AMF目前有AMF0和AMF3兩種格式,AMF隨著ActionScript3的問世,直接從AMF0升級到AMF3. Flash8以前版本只支援AMF0,flash9支援兩種格式。AMF3比AMF0效率更高。
flex資料互動方式 轉