gpt4 book ai didi

flash - AMF 消息结构?

转载 作者:行者123 更新时间:2023-12-04 17:28:52 27 4
gpt4 key购买 nike

Adobe的documentation for the AMF format似乎并没有实际指定整个 AMF 消息的结构。它仅指定单个数据类型的格式。我已经阅读了五次该死的东西,要么我完全错过了实际 AMF 消息应包含的内容,要么根本不存在。有谁知道实际的完整消息结构的任何文档?

最佳答案

该规范可能被描述为“简洁”。

AMF 编码使用称为“类型标记”的字节。整数的类型标记是值 4。整数数据紧跟在此标记之后,长度为 1-4 个字节。长度因整数类型被“压缩”而变化,因此值 0-127 只需要 1 个字节,而较大的值需要更多字节。这种整数格式在规范中称为“U29”。

例如,如果我们简单地传递整数“5”,一个有效的 AMF 数据包将是这两个字节:04 05
在 Web 上找到的应用程序中,AMF 数据有时会以网络字节顺序编码为 un​​signed long 的长度开头。如果您正在观察此类应用程序,您可能会看到:
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 - 逐个字符串,字符串长度:275 69 - 'ui'0B - 逐个字符串,字符串长度:570 61 72 61 6D - '参数'19 - 逐个字符串,字符串长度:1262 75 74 74 6F 6E 5F 70 72 65 73 73 - 'button_press'04 - 整数05 - 整数值:501 - 空名称,终止此对象的动态成员的空列表

由于该数据包将占用 28 个字节,因此它的前缀可能为:00 00 00 1C在野外遇到的时候。

另一个需要考虑的可能性是 AMF 通信可以被压缩,通常使用 zlib 中可用的“deflate”压缩。

我希望这可以帮助您理清规范,但如果您有问题,我会尽力回答。

关于flash - AMF 消息结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1499205/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com