首页>计算机>软件水平考试>复习指导>正文
两版本AMF协议数据处理的区别之处

www.zige365.com 2010-6-29 10:45:19 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
          AMF协议是Action Message Format协议的简称,AMF协议是Adobe 公司的协议,主要用于数据交互和远程过程调用,在功能上与WebService相当,但AMF与WebService中的xml不同在于AMF是二进制数据,而xml是文本数据,AMF的传输效率比xml高?AMF使用http方式传输,目前主要用于ActionScript中,实现Flex与 Service之间的通信?目前最新的版本是AMF3?AMF最大的特色在于可直接将Flash内置对象,例如Object, Array, Date, XML,传回服务器端,并且在服务器端自动进行解析成适当的对象,这就减轻了开发人员繁复工作,同时也更省了开发时间?由于AMF采用二进制编码,这种方式可以高度压缩数据(对flash中的AMF3的误解),因此非常适合用来传递大量的资料?

  数据量越大,Flash Remoting的传输效能就越高,远远超过Web Service?至于XML, 它们使用纯文本的传输方式,效能就更不能与Flash Remoting相提并论了?除了AMF编码进行高效数据操作的功能之外,Byte Array还有一个很酷的功能,就是从内存中深层次的Copy(Clone)整个对象,请参考使用Byte Array及AMF来提高Data Object的操作效率?

  AMF协议目前有两种版本,AMF0和AMF3,他们在数据类型的定义上有细微不同?

  1.TypeByte codeNotes

  2.Number0×00

  3.Boolean0×01

  4.String0×02

  5.Object0×03

  6.MovieClip0×04Not available in Remoting

  7.Null0×05

  8.Undefined0×06

  9.Reference0×07

  10.MixedArray0×08

  11.EndOfObject0×09See Object

  12.Array0x0a

  13.Date0x0b

  14.LongString0x0c

  15.Unsupported0x0d

  16.Recordset0x0e Remoting, server-to-client only

  17.XML0x0f

  18.TypedObject (Class instance)0×10

  19.AMF3 data0×11 Sent by Flash player 9+

  对应的枚举就是

  1.public enum DataType

  2.{

  3. Number = 0,

  4. Boolean = 1,

  5. String = 2,

  6. UntypedObject = 3,

  7. MovieClip = 4,

  8. Null = 5,

  9. Undefined = 6,

  10. ReferencedObject = 7,

  11. MixedArray = 8,

  12. End = 9,

  13. Array = 10,//0x0A

  14. Date = 11,//0x0B

  15. LongString = 12,//0x0C

  16. TypeAsObject = 13,//0x0D

  17. Recordset = 14,//0x0E

  18. Xml = 15,//0x0F

  19. TypedObject = 16,//0x10

  20. AMF3data=17//0x11

  以上表列出了AMF协议的每种数据类型的表示方法。

我要投稿 新闻来源: 编辑: 作者:
相关新闻