AMF3解析问题,后面的object不明白

rocllllll 2013-01-08 01:56:40
00000000 00 03 00 00 00 01 00 17 63 68 61 74 41 63 74 2e chatAct.
00000010 75 73 65 72 53 65 6e 64 4d 65 73 73 61 67 65 00 userSendMessage
00000020 04 2f 36 32 37 00 00 00 23 0a 00 00 00 03 11 0c /627 #
00000030 11 32 0d 6c 51 61 67 42 65 11 0c 15 32 11 68 5d 2 lQagBe 2 h]
00000040 68 61 43 65 73 10 11 0c 07 32 03 31 haCes 2 1

上面是发送的一个聊天记录的amf包,发送的是hihatest
现在开始分析上面的片断:
00 03 表示版本号为3,即AMF3格式
00 00 表示头部的个数为0,如果头部个数为n,那么接下来应该是n个头部的数据,这里因为n=0,所以直接跳过
00 01 表示消息体的个数为1
接下来就是(消息体的正文=targetURI+responseURI+内容长度+内容)* n,我们这个例子里n=1
targetURI是一个字符串,它表示这个消息要发到哪里去,在这个例子里它 = chatAct.userSendMessage
responseURI也是一个字符串,它其实就类似于一个token的作用,因为我们同时可能调用了很多个service,那么service返回回来的数据要回调哪个处理函数呢?
关键就在于这个responseURI,这个字符串会跟着数据流发出去, 然后还会回来。
AMF0规定了targetURI和responseURI都是一个UTF字符串, 也就是用2个字节来表示字符串长度,后面紧接着字符串正文。
00 17 表示targetURI的长度是0×17
63 68……61 67 65 就是targetURI的值: chatAct.userSendMessage
00 04 表示responseURI的长度是4
2f 36 32 37 表示responseURI的值: /627
00 00 00 23 表示后面的内容长度为0x23(35个),接下来的都是内容正文了
0a 表示这个是一个标准的Array
00 00 00 03 表示数组有3个元素
11 表示数据类型是AMF3,下面开始AMF3的数据流分析
----------------------------------------------------------
从这下面的就都不明白,求高人指点下,应该如何解析???

说明文档不详细呀!麻烦高人看下,如果知道详细的解析规则就更好了!!!多谢
...全文
157 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
LANSEVL 2013-06-03
  • 打赏
  • 举报
回复
解码后的AMF封装信息: ---------- AMF封装信息 ---------- AMF版本号: 3 信息头 [ ] 信息体 [1].targetURI: "chatAct.userSendMessage" 信息体 [1].responseURI: "/627" 信息体 [1].信息: [[50,13,108,81,97,103,66,101],[50,17,104,93,104,97,67,101,115,16],[50,3,49]] ---------- AMF封装信息 结束 ----------

4,328

社区成员

发帖
与我相关
我的任务
社区描述
多媒体/设计 Flex
社区管理员
  • Flex
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧