常用函数call及回应格式
1、connect
请求:
connect invokeid object
a)object标示一系列客户端信息以及版本号等
回应:
_result invokeid null object
a)此invokeid与请求invokeid一致
b)object标示标准回应信息{level,code,de[url=]script[/url]ion}
2、createStream
请求:
createStream invokeid null
回应
_result invokeid null streamid
a)此invokeid与请求invokeid一致
b)streamid为全局唯一流id.通过自增实现,从1开始
3、publish
请求:
publish invokeid(0) null name type
a)此处invokeid为0,未知
b)最后两个参数指示流名称以及类型(live等)
回应:
onStatus invokeid(0) null object
a)invokeid一致
b)object标示一系列消息{level,code,de[url=]script[/url]ion,clientid}
c)clientid指示客户端唯一id号
d)此回应头的flvchannel为入包的flvchannel
e)此回应头的channel号无所谓,测试为4
附上从连接到publish数据包
1,C->S,连接
0080: 03 00 00 00 00 01 ................
0090: 9B 14 00 00 00 00 02 00 07 63 6F 6E 6E 65 63 74 .........connect
00A0: 00 3F F0 00 00 00 00 00 00 03 00 03 61 70 70 02 .?..........app.
00B0: 00 05 35 32 6E 74 75 00 08 66 6C 61 73 68 56 65 ..52ntu..flashVe
00C0: 72 02 00 0D 57 49 4E 20 39 2C 30 2C 31 32 34 2C r...WIN 9,0,124,
00D0: 30 00 06 73 77 66 55 72 6C 02 00 53 66 69 6C 65 0..swfUrl..Sfile
00E0: 3A 2F 2F 2F 43 3A 2F 44 6F 63 75 6D 65 6E 74 73 :///C:/Documents
00F0: 25 32 30 61 6E 64 25 32 30 53 65 74 74 69 6E 67 %20and%20Setting
0100: 73 2F 67 6F 6E 67 78 69 61 6F 68 75 2F E6 A1 8C s/gongxiaohu/...
0110: E9 9D A2 2F 41 53 C3 33 2F 74 65 73 74 2F 62 69 .../AS.3/test/bi
0120: 6E 2D 64 65 62 75 67 2F 74 65 73 74 2E 73 77 66 n-debug/test.swf
0130: 00 05 74 63 55 72 6C 02 00 19 72 74 6D 70 3A 2F ..tcUrl...rtmp:/
0140: 2F 36 31 2E 31 35 35 2E 38 2E 32 32 30 2F 35 32 /61.155.8.220/52
0150: 6E 74 75 00 04 66 70 61 64 01 00 00 0C 63 61 70 ntu..fpad....cap
0160: 61 62 69 6C 69 74 69 65 73 00 40 2E 00 00 00 00 abilities.@.....
0170: 00 00 00 0B 61 75 64 69 6F 43 6F 64 65 63 73 00 ....audioCodecs.
0180: 40 99 9C 00 00 00 00 00 00 0B 76 69 64 65 6F 43 @.........videoC
0190: 6F 64 65 63 73 00 40 C3 6F 80 00 00 00 00 00 00 [url=]odecs.@.o[/url].......
01A0: 0D 76 69 64 65 6F 46 75 6E 63 74 69 6F 6E 00 3F .videoFunction.?
01B0: F0 00 00 00 00 00 00 00 07 70 61 67 65 55 72 6C .........pageUrl
01C0: 02 00 54 66 69 6C 65 3A 2F 2F 2F 43 3A 2F 44 6F ..Tfile:///C:/Do
01D0: 63 75 6D 65 6E 74 73 25 32 30 61 6E 64 25 32 30 cuments%20and%20
01E0: 53 65 74 74 69 6E 67 73 2F 67 6F 6E 67 78 69 61 Settings/gongxia
01F0: 6F 68 75 2F E6 A1 8C E9 9D A2 2F 41 53 33 2F 74 ohu/....../AS3/t
0200: 65 73 74 2F 62 69 6E 2D 64 65 62 75 67 2F 74 65 est/bin-debug/te
0210: 73 74 2E 68 74 6D 6C 00 C3 0E 6F 62 6A 65 63 74 st.html...object
0220: 45 6E 63 6F 64 69 6E 67 00 00 00 00 00 00 00 00 Encoding........
0230: 00 00 00 09
头:[12|3],[时间戳0],[长度n],[类型invoke],[媒体频道0]
内容:connect invokeid object,一系列参数
2、S->C,BW(BandWidth??)
0030: 02 00 00 00 00 00 04 05 00 00 ................
0040: 00 00 00 13 12 D0 02 00 00 00 00 00 05 06 00 00 ................
0050: 00 00 00 13 12 D0 02 02 00 00 00 00 00 0E 04 00 ................
0060: 00 00 00 00 08 00 00 00 00 00 00 00 01 07 FB 41 ...............A
0070: 50 P
头[12|2],[时间戳0],[长度4],[类型Server down],[媒体频道0]
内容:00 13 12 D0
头[12|2],[时间戳0],[长度5],[类型Client up ],[媒体频道0]
内容:00 13 12 D0 02
头[12|2],[时间戳0],[长度14],[类型Server down],[媒体频道0]
内容:00 08 00 00 00 00 00 00 00 01 07 FB 41 50
3、C->S,BW(BandWidth??)
0030: 02 8D 35 45 00 00 04 05 00 00 ........5E......
0040: 00 00 00 13 12 D0 ......
头:[12|2],[时间戳8D 35 45],[长度4],[类型Server down],[媒体频道0]
内容:00 13 12 D0
4、S->C,回应连接
0040: 03 00 00 00 00 00 73 14 ..............s.
0050: 00 00 00 00 02 00 07 5F 72 65 73 75 6C 74 00 3F ......._result.?
0060: F0 00 00 00 00 00 00 05 03 00 05 6C 65 76 65 6C ...........level
0070: 02 00 06 73 74 61 74 75 73 00 04 63 6F 64 65 02 ...status..code.
0080: 00 1D 4E 65 74 43 6F 6E 6E 65 63 74 69 6F 6E 2E ..NetConnection.
0090: 43 6F 6E 6E 65 63 74 2E 53 75 63 63 65 73 73 00 Connect.Success.
00A0: 0B 64 65 73 63 72 69 70 74 69 6F 6E 02 00 15 43 .de[url=][url=]script[/url][/url]ion...C
00B0: 6F 6E 6E 65 63 74 69 6F 6E 20 73 75 63 63 65 65 onnection succee
00C0: 64 65 64 2E 00 00 09 ded....
头:[12|3],[时间戳0],[长度n],[类型invoke],[媒体频道0]
内容:_result invokeid null object,一系列参数
5、C->S,建立流
0030: 03 00 08 15 00 00 19 14 00 00 ...s............
0040: 00 00 02 00 0C 63 72 65 61 74 65 53 74 72 65 61 .....createStrea
0050: 6D 00 40 00 00 00 00 00 00 00 05 m.@........
头:[12|3],[时间戳00 08 15],[长度19],[类型invoke],[媒体频道0]
内容:createStream invokeid null
6、S->C,回应建立流
0030: 03 00 00 00 00 00 1D 14 00 00 ................
0040: 00 00 02 00 07 5F 72 65 73 75 6C 74 00 40 00 00 ....._result.@..
0050: 00 00 00 00 00 05 00 3F F0 00 00 00 00 00 00 .......?.......
头:[12|3],[时间戳],[长度1D],[类型invoke],[媒体频道0]
内容:_result invokeid null flvchannel->(double)3F F0
7、C->S,发布流
0040: 08 00 08 16 00 00 22 14 ..............".
0050: 01 00 00 00 02 00 07 70 75 62 6C 69 73 68 00 00 .......publish..
0060: 00 00 00 00 00 00 00 05 02 00 04 6D 79 74 68 02 ...........myth.
0070: 00 04 6C 69 76 65 ..live
头:[12|8],[时间戳00 08 16],[长度22],[类型invoke],[媒体频道01 00 00 00]
内容:publish invokeid(0) null myth live,注,最后分别是发布号和发布类型
8、S->C,回应发布流
0040: 04 00 00 00 00 00 82 14 ................
0050: 01 00 00 00 02 00 08 6F 6E 53 74 61 74 75 73 00 .......onStatus.
0060: 00 00 00 00 00 00 00 00 05 03 00 05 6C 65 76 65 ............leve
0070: 6C 02 00 06 73 74 61 74 75 73 00 04 63 6F 64 65 l...status..code
0080: 02 00 17 4E 65 74 53 74 72 65 61 6D 2E 50 75 62 ...NetStream.Pub
0090: 6C 69 73 68 2E 53 74 61 72 74 00 0B 64 65 73 63 lish.Start..desc
00A0: 72 69 70 74 69 6F 6E 02 00 16 6D 79 74 68 20 69 ription...myth i
00B0: 73 20 6E 6F 77 20 70 75 62 6C 69 73 68 65 64 2E s now published.
00C0: 00 08 63 6C 69 65 6E 74 69 64 00 41 9F ED 05 40 ..clientid.A...@
00D0: 00 00 00 00 C4 00 09 .......
头:[12|4],[时间戳0],[长度82],[类型invoke],[媒体频道01 00 00 00]
内容nStatus invokeid(0) null object->一系列参数 clientid=00 41 9F ED 05 40 00 00
9、C->S,发数据包,video data
头:[12|6],[时间戳00 08 16],[长度n],[类型videodata],[媒体频道01 00 00 00]