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的传输方式自然也无可比拟。
分享到:
相关推荐
开源AMF协议解析封装主要涉及的是Action Message Format (AMF)技术在C#语言环境下的应用,特别是针对Flex客户端的服务端实现。AMF是一种高效的数据交换格式,常用于Adobe Flex和Adobe Flash Player与服务器之间的...
AMF3 协议中文版定义 AMF(Action Message Format,动作信息格式)是一种压缩的二进制格式,用于序列化 ActionScript 对象图。序列化后的 AMF 编码对象图可以用来持久化,并在不同的会话中获得应用的公共状态,或者...
AMF(Action Message Format)协议是Adobe公司开发的一种二进制数据序列化协议,主要用于Flash Player和服务器之间的数据通信。AMF提供了一种高效、快速的方式传输数据,它被广泛应用于Flex应用程序,允许客户端和...
这种功能使得AMF.NET成为开发与Flash或Flex客户端交互的服务器端应用程序的理想选择,例如实现Flash Remoting,即通过AMF协议进行跨域通信。 AMF.NET兼容.NET框架1.1和2.0及更高版本,这使得它能够应用于各种老版本...
AMF3(Action Message Format version 3)协议是Adobe公司为Flash Player和Flex应用程序之间通信设计的一种二进制数据交换格式。它旨在提高数据传输效率,同时保持足够的灵活性以适应不同类型的复杂数据结构。AMF3...
本教程将详细介绍如何抓取使用AMF协议的Flex页面数据,并涉及模拟登录和页面抓取的相关知识。 1. **AMF简介** - AMF是一种高效的数据序列化格式,用于在Flex客户端和服务器之间传输数据。它比XML或JSON更快,因为...
【描述】"thinkphp_amf的一个简单demo" 意味着这个项目是为了演示如何在ThinkPHP框架中集成AMF协议,以便Flex客户端能够与服务器进行数据通信。通常,这种集成可以用于创建富互联网应用程序(RIA),允许用户界面与...
8. **版本兼容性**:随着AMF协议的更新,分析器需要保持兼容,例如AMF数据分析器_V30可能意味着它支持AMF的最新版本。 在使用AMF数据分析器时,开发者和测试人员可以快速检查服务器返回的数据是否符合预期,排查...
但是,如果你选择自己实现,这将是一个很好的学习机会,可以深入理解AMF协议以及易语言的编程机制。 最后,文件名"amf解析构造易语言源码.e"表明你可能已经得到了一个包含易语言源代码的项目文件。打开这个文件,你...
AMF是Action Message Format协议的简称,AMF协议是Adobe公司自己的协议,主要用于数据交互和远程过程调用,在功能上相当于WebService,但是AMF与WebService中的XML不同的是AMF是二进制数据,而XML是文本数据,AMF的...
通过以上步骤,你可以在Android应用中实现与使用AMF协议的服务器的交互,无论是解析接收到的AMF数据还是构造并发送AMF请求,都可以游刃有余。不过要注意,由于AMF主要是用于Flash环境,随着Flash逐渐被淘汰,可能...
BlazeDS是Adobe提供的免费服务,而GraniteDS是开源项目,两者都支持AMF协议。 4. 服务调用:在Flex应用中,通过HTTPService或WebService组件可以调用Java服务,但使用AMFChannel则能实现更高效的数据交换。通过定义...
AMF移植涉及到将使用AMF协议的应用程序从一个环境迁移到另一个环境,例如从一个服务器平台到另一个,或者从一个开发框架到另一个。在这个过程中,我们需要关注AMF的编码、解码过程以及与之相关的库和工具。 标题...
通过阅读和学习这份源码,我们可以深入理解AMF协议的工作原理,以及易语言如何处理二进制数据和序列化。 在实际应用中,这样的源码可以用于开发游戏服务器、富媒体交互系统或者任何需要与Flash客户端通信的项目。...
### RTMP协议中AMF的定义 #### 一、引言 实时消息传输协议(Real-Time Messaging Protocol,简称RTMP)是一种专为实时音频、视频数据传输设计的协议,广泛应用于流媒体服务中。在RTMP协议中,AMF(Action Message ...
大话自制端 PKG解包工具
AMF协议解析: AMF是一种高效的二进制格式,它用于编码和解码RTMP中的数据,包括字符串、数字、对象、数组等多种类型。AMF分为两种编码方式:AMF0(也称为AMF3)和AMF3。AMF0更广泛地应用于早期的RTMP实现,而AMF3在...
**FluorineFx AMF:Action Message Format通信在Flex与.NET之间的应用** FluorineFx是一款开源的.NET框架,专门用于...通过深入理解AMF协议和FluorineFx的工作原理,开发者可以构建出高性能、低延迟的Web应用程序。
AMF扩展使得开发者能够在PHP后端与使用AMF协议的前端(如Flash或Flex)之间轻松传递复杂的数据结构,如对象、数组和基本类型,而无需进行繁琐的JSON或XML序列化和反序列化。 【文件列表】虽然只有一个文件名"amfext...