AMF消息结构?(AMF message structure?)

2019-08-17 01:50发布

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它需要足够的信息。

谢谢,拉杰什。



文章来源: AMF message structure?
标签: flash adobe amf