Adobe公司的AMF格式的文档似乎并没有实际指定整个AMF消息的结构。 它仅规定了单独的数据类型的格式。 我读过那该死的东西五倍,要么我只是完全缺少实际的AMF消息应该包含什么,或者它不存在。 有谁知道实际的整体信息结构的任何文件?
Answer 1:
该规范可以被描述为“简洁”。
该AMF编码使用其被称为字节“型标记物”。 类型标记物为一个整数是4。整数数据值紧跟该标记,并且是1-4个字节长。 长度变化,因为整数类型为“压缩”,使得值0-127只需要1个字节,而较大的值需要更多的字节。 此整数格式由规范名为“U29”。
作为一个例子,如果我们简单地将整数“5”,一个有效的AMF数据包将是这两个字节:
04 05
在Web上找到的应用中,AMF数据有时被编码为以网络字节顺序的无符号长的长度之前。 如果你观察到这样的应用程序,你可能会看到:
00 00 00 02 04 05
,其中00 00 00 02
表示后面的AMF数据是2个字节长。
现在,假设我们发送的对象有下列构造函数之后:
this.ui = "button_press"; this.param = 5;
然后,我们可能会看到在AMF数据如下:
0A
-对象标签
2B
- u29o-VAL:2的密封构件,与对象的特性和数据,可能动态成员
01
-空字符串-匿名对象
05
-串按值,字符串长度:2
75 69
- 'UI'
0B
-串按值,字符串长度:5
70 61 72 61 6D
- 'PARAM'
19
-串按值,字符串长度:12
62 75 74 74 6F 6E 5F 70 72 65 73 73
- 'button_press'
04
-整数
05
-整数的值:5
01
-空名称,终止这个对象的动态成员的空单
:由于该数据包将采取28个字节,它可以由前缀00 00 00 1C
在野外遇到的时候。
另一个要考虑的可能性是,AMF通信可以被压缩,通常使用在ZLIB可用的“放气”压缩。
我希望这可以帮助你理清规范,但如果你有任何问题,我会尽量回答。
Answer 2:
如果您正在寻找远程消息结构被追加到年底AMF0规范 -第4节
Answer 3:
您也可以通过去维基http://en.wikipedia.org/wiki/Action_Message_Format它需要足够的信息。
谢谢,拉杰什。