Amf3協議


--Flash默認支持AMF3二進制協議,而Java服務端可以使用Adobe開源項目BlazeDS裏提供的flex-messaging-common.jar和flex-messaging-core.jar來支持AMF3協議。


1.AMF3編碼分析 http://www.68design.net/Web-Guide/Flash/40939-1.html

AMF3是一種緊湊型的二進制編碼, 由於是二進制緊湊型的,所以在網絡傳輸中它的效率很高. 但是AMF3它並不是一個壓縮型的編碼, 一個AMF3數據包其實有很大一部分是描述信息. 通過下面的分析,也許你能明白這一點.
在Socket通訊中,我是這樣子做的:

它的解碼過程是: 讀取short型數據length,然後檢測緩衝區數據是否大於length,如果大於length則讀取length長個body,再將Body進行解 碼,接下來再讀取下一個length,再檢測Body再將Body解碼. 基本上通訊的解碼過程都如此,不同的是,有些編解碼是通過回車符或是特殊字符來處理. 其實AMF3的編碼跟這個也有相似的地方,它的最細小的定義是:

這裏的Type指的是一個AS3的數據類型, 如Number或是String等,而Value就是指這個type的數據內容,因爲通常簡單的數據類型的長度是可確定的,如int型是佔四個字節,或是short只佔兩個字節.對於字符串類型,它的定義是:

這裏的這個Length是一個short型,它佔兩個字節,最大可傳輸2的16乘方個字節的字符串. 基礎的就這些了.



2.AMF協議簡介


3.Amf3協議分析與實現


4.利用AMF數據封裝與Flash 進行Socket通訊 

--文中展示了Adobe的開源項目BlazeDS中提供的類進行AMF3封裝與Flash Socket通訊


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章