AMF协议的最基本概念则是在XML的文本数据中了解到的。随着对这个协议的学习,发现它的使用已经不再仅仅局限在一种方式中。在很多其他领域也有了它的展现。现在我们就来认识一下这个协议吧。
Action Message Format协议的简称,AMF协议是Adobe公司自己的协议,主要用于数据交互和远程过程调用,在功能上相当于WebService,但是AMF与WebService中的XML不同的是AMF是二进制数据,而XML是文本数据,AMF的传输效率比XML高。AMF使用HTTP方式传输,目前主要是用于ActionScript中,即实现Flex和Server之间的通信。目前有二种版本--AMF0和AMF3
AMF协议最大的特色在于可直接将Flash内置对象,例如Object, Array, Date, XML,传回服务器端,并且在服务器端自动进行解析成适当的对象,这就减轻了开发人员繁复工作,同时也更省了开发时间。由于AMF采用二进制编码,这种方式可以高度压缩数据,因此非常适合用来传递大量的资料。数据量越大,Flash Remoting的传输效能就越高,远远超过Web Service。至于XML, LoadVars和loadVariables(),它们使用纯文本的传输方式,效能就更不能与Flash Remoting相提并论了。
同样是轻量级数据交换协议,同样是通过调用远程服务,同样是基于标准的HTTP和HTTPS协议, Flash Remoting为什么选择了使用AMF而放弃了SOAP与Flash 播放器通信呢有如下原因:
1 SOAP将数据处理成XML格式,相对于二进制的AFM太冗长了;
2 AMF能更有效序列化数据;因为AMF协议的初衷只是为了支持Flash ActionScript的数据类型,而SOAP却致力于提供更广泛的用途;
AMF从Flash MX时代的AMF0发展到现在的AMF3。AMF3用作Flash Playe 9的ActionScript 3.0的默认序列化格式,而AMF0则用作旧版的ActionScript 1.0和2.0的序列化格式。 在网络传输数据方面,AMF3比AMF0更有效率。AMF3能将int和uint对象作为整数(integer)传输,并且能序列化ActionScript 3.0才支持的数据类型, 比如ByteArray,XML和Iexternalizable。
AMF(Action Message Format)是一种binary format的资料型态,透过AMF over HTTP的方式将flash端资料编码后传回server,server端的remoting adaptor接收到资料后则会译码回正确的native对象,交给正确的程序处理。 AMF协议除了用于Flash remoting外,也广泛的用于 Local Connection 与 Flash communication server,它最大的特色在于可直接将flash native object。
例如Object, Array, Date, XML,传回server端,并且在server端自动进行转译成适当的对象,例如flash 的Array传回PHP时就会自动转换为 Associative Array;这个特色对开发者最大的好处在于不需要再人工处理serialization 与 deserialization的繁复工作,不但精确度更高,同时开发也更省时间。 由于AMF协议是binary format并且编码时经过高度压缩,因此非常适合用来传递大量的资料,根据flashorb网站的测试(主要针对web
service与flash remoting),当资料量越大时,flash remoting的传输效能就越高,远远超过web service的表现,因此同样的道理也可得知xml, loadVars, loadVariables 等使用plaine text format的传输方式自然也无可比拟。
相关推荐
AMF3协议中文版定义.pdf
amf c# flex服务端协议解析和封装。
《RTMP协议中AMF的定义》,原名《TheAMF》英文版本。 内容简介: The AMF object is used for the sending and receiving of all video/audio data. After the initial handshake, all objects sent use the AMF ...
AMF源码 AMF源码欢迎下载
之前测试解析amf3协议数据进行树化便于观察的,解析的有可能不是很完美,正常用来观察里面的数据没什么问题
(5G AMF网元标准协议中英文对照版)29518-g00 Access and Mobility Management Services(AMF).docx
Delphi的AMF格式代码。 TAMF3Stream = class(TAMFBaseStream) private type TAMFCache<T> = class private FIndex: Integer; FCache: TDictionary, Integer>; function GetIndex(const Obj: T): Integer; ...
抓取AMF协议的flex页面,支持模拟登录和页面抓取。
python3.0 以上可用的amf协议数据解析类库
Adobe宣布将公开实时消息传送协议(Real-Time Messaging Protocol,RTMP)规范,RTMP是设计在Adobe Flash平台技术之间提供高性能音频、视频和数据传输。之前Adobe公开AMF规范就收到了RIA社区不同程度欢迎。 这份源码...
大话自制端 PKG解包工具
AMF开源FluorineFx文件太大 对于只需要序列化和反序列化AMF数据流的朋友,这个库是不错的选择 支持.net 1.1和2.0+
支持AMF格式的通信封包编码、解码、向AMF服务端发送请求、返回AMF数据解析。 支持RTMP封包编码、解码。 支持Flex外部化类的AMF编码、解码。 支持解压还原LZMA算法压缩过的SWF文件(文件头三字节为:ZWS的 *.SWF...
一个用C++编写的,amf3协议解析模块,可以实现flash通信协议的解析
易语言amf解析构造源码,amf解析构造,分析amf,取短整数_字节集,时间到双精度,到时间_双精度,取整数_字节集,integer_字节集,取双精度_字节集,amf3型数据,十六进制转字节集,分析数据段,解析amf数据,解析amf3数据,Utf8转...
AMF1.0(AMP).zip 代码
amf0 原版文档 完整版
Advanced Media Framework AMF AMD Radeon硬件编码ffmpeg编译库源码 The AMF framework is compatible with most recent Radeon GPUs starting with the Southern Islands family and APUs of the Kabini, Kaveri, ...
AMF3 C++ AMF3 C++ 源码库码库
用于分析AMF数据分析的工具,使用简单方便,帮助提高AMF分析效率