1. amf 类型
| Number | 0×00 | double类型 |
| Boolean | 0×01 | bool类型 |
| String | 0×02 | string类型 |
| Object | 0×03 | object类型 |
| MovieClip | 0×04 | Not available in Remoting |
| Null | 0×05 | null类型,空 |
| Undefined | 0×06 | |
| Reference | 0×07 | |
| MixedArray | 0×08 | |
| EndOfObject | 0×09 | See Object ,表示object结束 |
| Array | 0x0a | |
| Date | 0x0b | |
| LongString | 0x0c | |
| Unsupported | 0x0d | |
| Recordset | 0x0e | Remoting, server-to-client only |
| XML | 0x0f | |
| TypedObject (Class instance) | 0×10 | |
| AMF3 data | 0×11 |
Sent by Flash player 9+ |
对应的枚举就是:
public enum DataType{
Number = 00,// 0
Boolean = 01,// 1
String = 02,// 2
UntypedObject = 03,// 3
MovieClip = 04,// 4
Null = 05,// 5
Undefined = 06,// 6
ReferencedObject = 07,// 7
MixedArray = 08,// 8
End = 09,// 9
Array = 10,// 10
Date = 11,// 11
LongString = 12,// 12
TypeAsObject = 13,// 13
Recordset = 14,// 14
Xml = 15,// 15
TypedObject = 16,// 16
AMF3data = 17// 17
}
2. rtmp协议中数据都是大端的,所以在放数据前都要将数据转成大端的形式。
3. null是空,只有一个byte,0x05。
4. object类型要复杂点,第一个byte是03表示object,其后跟的是N个(key+value)。最后以00 00 09表示object结束。