Amf3协议分析与实现

Amf3协议分析与实现前沿:     AMF(ActionMessage Format)是一种二进制格式数据型态,AMF协议基于HTTP,将flash客户端数据编码后传回server,server端的remotingadaptor接收到数据后则会解码回正确的native对象,交给正确的程序处理,并以同样的数据组织方式响应客户端。AMF3相比较AMF0编码时经过高度压缩,因此非常适合用来
摘要由CSDN通过智能技术生成

Amf3协议分析与实现

前沿:
     AMF(Action Message Format)是一种 二进制格式数据型态,AMF协议基于HTTP,将flash客户端数据编码后传回server,server端的remoting adaptor接收到数据后则会解码回正确的native对象,交给正确的程序处理,并以同样的数据组织方式响应客户端。AMF3相比较AMF0编码时经过高度压缩,因此非常适合用来传递大量的数据,根据flashorb网站的测试(主要针对web service与flash remoting),当数据量越大时,flash remoting的传输效能就越高。

1.Amf3协议分析

AMF3协议包括header和body,组成的数据将作为HTTP的body数据体部分进行发送。

                                         AMF协议HEX进制表示:

 

00000000 :00 03  00 00 00 01  00 1d 42 61 73 65 53 65 72 76          BaseServ

00000010 :69 63  65 2e 64 6f   44 69 73 70 61 74 63 68 54  6f           ice.doDispatchTo

00000020 :42 61  74 63 68 00  02  2f 31 00 00 00 dc 0a 00 00           Batch     /1

前两个字节00 03 表示AMF版本,接下来两个字节表示AMF header个数,若header个数为0,则后面不跟header内容,蓝色标识的两个字节00 01是AMF body的个数,之后是AMF body部分。body会先写入AMF的target和response,是字符串形式,response表示请求的标识,target表示请求的类的方法。字符串写入的格式是先写入字符串长度(两个字节)后面跟着字符串内容。

本例中紫色标识的两个字节(00 1d)为target长度,之后跟着target的内容,粉红色的两个字节(00 02)表示response字符串长度。之后就是body的数据体部分。AMF3数据类型有如下几种方式:

 

[cpp]  view plain copy
  1. class AMF3DataType  
  2.  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值