加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash – AMF消息结构?

发布时间:2020-12-15 07:29:03 所属栏目:百科 来源:网络整理
导读:Adobe的 documentation for the AMF format似乎没有实际指定整个AMF消息的结构.它仅指定各个数据类型的格式.我已经五次阅读了该死的东西,要么我完全不知道实际的AMF消息应该包含什么,或者它不存在.有谁知道实际的整个消息结构的任何文档? 解决方法 规范可能
Adobe的 documentation for the AMF format似乎没有实际指定整个AMF消息的结构.它仅指定各个数据类型的格式.我已经五次阅读了该死的东西,要么我完全不知道实际的AMF消息应该包含什么,或者它不存在.有谁知道实际的整个消息结构的任何文档?

解决方法

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

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中可用的“deflate”压缩.

我希望这可以帮助您理清规范,但如果您有疑问,我会尝试回答它们.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读