简析AMF协议的内容处理流程

网络 网络管理
下面我们主要介绍了AMF协议的一些基本处理流程(基于HTTP协议的)。而后还对它的一些应用领域也做了简单的介绍。希望对大家有所帮助。

对Flash比较熟悉的朋友可能知道AMF协议。这个协议的使用更多地是在一些资料处理等方面的领域。但是这个协议也仍然是基于Http协议的。那么我们现在就来简单了解一下有关AMF这个协议的具体情况吧。

基于Http协议的AMF协议

它的内容处理过程大致是这样:

1.从客户端获取Http请求(Request)流.

2.对流进行解串行化(Deserialize),得到服务器端程序能够识别的数据,并建立一个响应(Response)消息

3.Debug开始

4. 对流进行各种处理(记录、许可、服务)得到返回值

5.对响应流进行串行化

6.发送Http响应给客户端

Flash ActionScript数据类型在AMF协议中对应的值是:

  1. Number 0x00;  
  2. Boolean 0x01;  
  3. String 0x02;  
  4. Object 0x03;  
  5. MovieClip 0x04;  
  6. Null 0x05;  
  7. Undefined 0x06;  
  8. Reference 0x07;  
  9. ECMAArray 0x08;  
  10. ObjectEnd 0x09;  
  11. StrictArray 0x0a;  
  12. Date 0x0b;   
  13. LongString 0x0c;   
  14. Unsupported 0x0d;   
  15. Recordset 0x0e;   
  16. XMLObject 0x0f;   
  17. TypedObject(Class) 0x10;  

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的传输方式自然也无可比拟。

责任编辑:佟健 来源: 互联网
相关推荐

2010-06-28 09:43:14

AMF协议

2010-09-10 09:52:44

开源协议栈

2010-09-08 16:25:39

SIP协议栈

2011-07-20 10:20:04

2010-06-21 14:37:36

AMF协议

2010-06-21 13:59:33

AMF协议

2010-06-21 15:06:45

AMF协议

2010-06-24 16:57:30

AMF协议

2010-06-18 14:31:41

AMF协议

2010-06-18 13:53:22

AMF协议

2010-05-31 16:59:28

IPv6协议

2024-05-31 12:38:32

2010-06-28 09:50:42

AMF协议

2010-09-09 16:42:18

嵌入式IPv6协议栈

2009-08-12 16:38:35

C#读取XML节点

2022-11-21 12:06:04

2011-07-12 14:04:58

2010-06-28 10:03:34

AMF协议

2010-07-02 12:11:08

DHCP协议

2020-10-14 15:07:25

物联网技术安全
点赞
收藏

51CTO技术栈公众号