现在流行的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没压缩)
分享到:
相关推荐
AMF分为两种版本:AMF0和AMF3,AMF3在效率和压缩率上优于AMF0,因此更常见于现代应用。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于...
AMF3(Action Message Format version 3)协议是Adobe公司为Flash Player和Flex应用程序之间通信设计的一种二进制数据交换格式。它旨在提高数据传输效率,同时保持足够的灵活性以适应不同类型的复杂数据结构。AMF3...
AMF3(Action Message Format version 3)是Adobe公司开发的一种二进制数据序列化格式,主要用于Flash Player和Flex应用程序与服务器之间的数据交换。在C++编程环境中,AMF3库可以帮助开发者高效地处理这种数据格式...
在标题“amf3_spec_05_05_08.zip_AMF3_above flash player_player”中,我们可以理解这是关于AMF3规范的一个版本,发布日期可能是2005年5月8日,主要针对Flash Player 9及以上版本。描述进一步说明了这是用于Flash ...
1. **高效性**:AMF3是一种二进制格式,相比于基于文本的XML或JSON,它在传输和解析速度上有显著优势,占用的存储空间也更小。 2. **数据类型支持**:AMF3支持多种数据类型,包括整型、浮点型、字符串、日期、数组...
1. **二进制编码**:与XML或JSON相比,AMF3使用二进制格式,数据传输更快,占用带宽更少。 2. **类型标记**:每个数据都由一个类型标记前导,使得解析器能够快速识别数据类型。 3. **优化的序列化和反序列化**:AMF3...
AMF3 协议中文版定义 AMF(Action Message Format,动作信息格式)是一种压缩的二进制格式,用于序列化 ActionScript 对象图。序列化后的 AMF 编码对象图可以用来持久化,并在不同的会话中获得应用的公共状态,或者...
相比于JSON或XML等文本格式,AMF3的数据量更小,传输速度更快,适合实时性要求高的应用,如在线游戏和富互联网应用程序(RIA)。 在“socket+AMF3”的场景下,我们通常会看到这样的情况:一个基于Socket的服务器端...
### AMF3 格式详解 #### 一、引言 **AMF3**(Action Message Format 3)是 Adobe 公司推出的一种紧凑的二进制格式,用于序列化 ActionScript 对象图。一旦对象图被序列化为 AMF 编码,就可以在不同的会话之间持久...
Java Socket AMF3 Flash Game Framework 是一个专门为Flash游戏设计的后端框架,它结合了Java技术和AMF3编码,使得游戏开发者能够构建交互性强、安全可靠的Web游戏。在这个框架中,Java作为服务器端语言,提供了稳定...
### AMF3 Specification详解 #### 一、简介 ##### 1.1 目的 Action Message Format (AMF) 是一种紧凑的二进制格式,用于序列化 ActionScript 对象图。一旦序列化,AMF 编码的对象图可用于跨会话持久存储和检索应用...
### AMF3 Specification详解 #### 1. 引言 ##### 1.1 目的 Action Message Format (AMF) 是一种紧凑的二进制格式,用于序列化 ActionScript 对象图。一旦序列化,AMF 编码的对象图可以用于在不同会话之间持久化和...
5. **AMF3.Server**:这部分可能是一个实现AMF3协议的服务端组件,负责处理AMF3格式的请求和响应,可能包含AMF3数据的解析、业务逻辑处理和结果返回等功能。 6. **AMF3**:这个文件可能包含了AMF3协议的相关代码或...
虽然AMF1.0相比AMF0增加了对XML和XMLList的支持,但在后来的AMF3版本中,这些功能得到了更全面的优化,因此AMF1.0现在较少被使用。 在"AMF1.0(AMP).zip"这个压缩包中,我们可以推测包含的是与AMF1.0相关的源代码...
4. **性能优化**:由于AMF3是二进制格式,相比文本格式如JSON,它在传输和解析速度上有显著优势。lua-amf库在设计时也考虑了性能,尽量减少了CPU和内存的消耗。 5. **错误处理**:在处理AMF数据时,可能会遇到格式...
3. **对象编码**:对于复杂的数据结构如Object和Array,AMF0会存储成员的键值对或者元素的顺序。对象编码会包含类型标识符和属性列表,而数组编码则会记录元素数量和元素值。 4. **解码过程**:解码AMF0数据流时,...
AMF3的应用场景广泛,例如在网络通信中,客户端与服务器之间可以使用AMF3格式进行高效的数据交换。通过AMF3格式化数据,可以减少传输的数据量,加快数据传输速度,从而提升整体应用的性能。 AMF3作为Adobe公司的一...
### AMF3 (Action Message Format 3) 概述与技术细节 #### 一、AMF3 简介 AMF3(Action Message Format 3)是一种用于序列化ActionScript对象图的紧凑型二进制格式。它主要用于在客户端与服务器端之间高效地传输...
AMF0是早期版本,主要应用于Flash Player 8及更早版本,而AMF3则在Flash Player 9及以后版本中广泛使用,提供了更高效的数据编码和解码。 使用AMF.NET进行开发时,开发者可以创建服务端的方法,这些方法会被Flash或...