`
janver45
  • 浏览: 3076 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

AMF3,JSON,protobuffer

阅读更多

现在流行的WEBGAME中,大都采用FLASH做前段,C++,JAVA或者PHP做的后台,貌似传输的数据格式大都是XML,JSON,AMF3,或者自定义封包的传输方式,最近做了个测试,发现如果用了自定义封包(GOOGLE PROTOCOL BUFFER 以下简称PB)真的能节省不少流量……

 

10ROW的数据(每行数据3列的样子)参考如下

JSON 大概就得用 500多个字节(发送JSON串)

AMF3  用了   64个字节(发送AMF对象)

PB  仅仅32个字节!!!!!!!

xml 我就没测了,我想现在做游戏的,没几个会用它来传输数据吧,后果不堪设想。

 

100ROW的数据时候(一般来说没啥必要测试,没有哪个帅哥会把自己的封包做的那么大的)

JSON 大概就得用 4个TCP包,因为我MINA段设置的TCPBUFFER为1024字节,外加1个70多字节的小包(妈呀)

AMF3 表现出色 也仅用了700多个字节

PB  614个字节

 

看来在大数据量上,PB比AMF的优势不大,其实也可以理解PB的数据包要小,因为前后两端都约定了属性名只用了1

个字节~,问题是在WEBGAME的应用中往往都是些小的TCP包,因此还是强烈推荐使用PB

(以上测试中,PB和AMF均有压缩,JSON没压缩)

 

 

 

 

分享到:
评论
2 楼 linbzh 2011-12-08  
pb不支持as3吧,没找到相应的包
1 楼 justdo2008 2011-10-17  
同为页游人士

相关推荐

    amf解析,json解析 格式化

    AMF分为两种版本:AMF0和AMF3,AMF3在效率和压缩率上优于AMF0,因此更常见于现代应用。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于...

    AMF3 C++ 源码(修改版)

    1. **高效性**:AMF3是一种二进制格式,相比于基于文本的XML或JSON,它在传输和解析速度上有显著优势,占用的存储空间也更小。 2. **数据类型支持**:AMF3支持多种数据类型,包括整型、浮点型、字符串、日期、数组...

    amf3协议解析的例子

    AMF3(Action Message Format version 3)协议是Adobe公司为Flash Player和Flex应用程序之间通信设计的一种二进制数据交换格式。它旨在提高数据传输效率,同时保持足够的灵活性以适应不同类型的复杂数据结构。AMF3...

    amf3cplusplus

    1. **二进制编码**:与XML或JSON相比,AMF3使用二进制格式,数据传输更快,占用带宽更少。 2. **类型标记**:每个数据都由一个类型标记前导,使得解析器能够快速识别数据类型。 3. **优化的序列化和反序列化**:AMF3...

    AMF3协议中文版定义.pdf

    AMF3 协议中文版定义 AMF(Action Message Format,动作信息格式)是一种压缩的二进制格式,用于序列化 ActionScript 对象图。序列化后的 AMF 编码对象图可以用来持久化,并在不同的会话中获得应用的公共状态,或者...

    socket+AMF3

    相比于JSON或XML等文本格式,AMF3的数据量更小,传输速度更快,适合实时性要求高的应用,如在线游戏和富互联网应用程序(RIA)。 在“socket+AMF3”的场景下,我们通常会看到这样的情况:一个基于Socket的服务器端...

    java socket amf3 flash game framework

    Java Socket AMF3 Flash Game Framework 是一个专门为Flash游戏设计的后端框架,它结合了Java技术和AMF3编码,使得游戏开发者能够构建交互性强、安全可靠的Web游戏。在这个框架中,Java作为服务器端语言,提供了稳定...

    AMF3 C++ 源码库码库

    AMF3(Action Message Format version 3)是Adobe公司开发的一种二进制数据序列化格式,主要用于Flash Player和Flex应用程序与服务器之间的数据交换。在C++编程环境中,AMF3库可以帮助开发者高效地处理这种数据格式...

    amf3_spec_05_05_08.zip_AMF3_above flash player_player

    在标题“amf3_spec_05_05_08.zip_AMF3_above flash player_player”中,我们可以理解这是关于AMF3规范的一个版本,发布日期可能是2005年5月8日,主要针对Flash Player 9及以上版本。描述进一步说明了这是用于Flash ...

    amf3_spec amf3_spec

    amf3_spec amf3_spec amf3_spec amf3_spamf3_specec

    开源amf协议解析封装

    5. **AMF3.Server**:这部分可能是一个实现AMF3协议的服务端组件,负责处理AMF3格式的请求和响应,可能包含AMF3数据的解析、业务逻辑处理和结果返回等功能。 6. **AMF3**:这个文件可能包含了AMF3协议的相关代码或...

    AMF1.0(AMP).zip

    虽然AMF1.0相比AMF0增加了对XML和XMLList的支持,但在后来的AMF3版本中,这些功能得到了更全面的优化,因此AMF1.0现在较少被使用。 在"AMF1.0(AMP).zip"这个压缩包中,我们可以推测包含的是与AMF1.0相关的源代码...

    lua-amf 解析库

    4. **性能优化**:由于AMF3是二进制格式,相比文本格式如JSON,它在传输和解析速度上有显著优势。lua-amf库在设计时也考虑了性能,尽量减少了CPU和内存的消耗。 5. **错误处理**:在处理AMF数据时,可能会遇到格式...

    amf0 原版文档 完整版

    3. **对象编码**:对于复杂的数据结构如Object和Array,AMF0会存储成员的键值对或者元素的顺序。对象编码会包含类型标识符和属性列表,而数组编码则会记录元素数量和元素值。 4. **解码过程**:解码AMF0数据流时,...

    amf3_spec_05_05_08.pdf

    amf3_spec_05_05_08.pdf amf3_spec_05_05_08.pdf amf3_spec_05_05_08.pdf

    AMF3 format

    amf3 的格式说明,英文版,做rtmp协议或者做与flash数据交互服务器端必备的参考

    AMF抓取flex页面数据

    - AMF分为两种类型:AMF0和AMF3,其中AMF3提供了更好的压缩和性能。 2. **Flex与AMF通信** - Flex应用通常通过HTTP/HTTPS与服务器通信,使用AMF协议封装数据,通过Flash Player发送到服务器。这些请求可能包括...

    AMF.NET 文件极小的开源AMF解析库

    AMF0是早期版本,主要应用于Flash Player 8及更早版本,而AMF3则在Flash Player 9及以后版本中广泛使用,提供了更高效的数据编码和解码。 使用AMF.NET进行开发时,开发者可以创建服务端的方法,这些方法会被Flash或...

    AMF编码解码演示版

    AMF有两种主要的版本:AMF0和AMF3,其中AMF3提供了更好的压缩和性能。 AMF解码则是将接收到的二进制数据还原成原始的对象或数据结构,这一过程对于正确解析服务器返回的信息至关重要。易语言类库提供的AMF编码解码...

Global site tag (gtag.js) - Google Analytics