美文网首页
AMF (Action Message Format)

AMF (Action Message Format)

作者: 给艺艺一个未来 | 来源:发表于2022-09-11 22:56 被阅读0次

    介绍

    AMF(Action Message Format)是一种 binary format,用于序列化 object 比如 ActionScript object 或 XML,用于 client 和 server 间的通信。

    AMF 通常与 Adobe 的 RTMP 结合使用,用于序列化建连和控制流媒体传输的命令。

    AMF 序列化的二进制通常表示为:Type [Length] Value [Object End]

    • Type 占用 1 个字节。
    • Length 当 Type 的 Data 为可变长度时存在。
    • Value 当前类型的值,按照 Type 和 Length 进行读取和解释。
    • Object End 当 Type 为 Object 时存在,占用 1 个字节。

    AMF 在发展的过程中存在两个版本,分别是 AMF0 和 AMF3 。

    AMF0

    AMF0 支持的 Type :

    AMF 0

    示例
    使用 AMF0 序列化 AMF-Object :

    var person:Object = {name:'Mike', age:'30', alias:'Mike'};
    var stream:ByteArray = new ByteArray();
    stream.objectEncoding = ObjectEncoding.AMF0; // ByteArray defaults to AMF3
    stream.writeObject(person);
    

    person:Object 的二进制格式:

    03 00 04 6e 61 6d 65 02 00 04 4d 69 6b 65 00 03 61 67 65 00 40 3e 00 00 00 
    00 00 00 00 05 61 6c 69 61 73 02 00 04 4d 69 6b 65 00 00 09
    

    解释:

    03 ------------------------------------------ Object (type)
    00 04  -------------------------------------- 4 bytes (length)
    6e 61 6d 65  -------------------------------- name (value)
    02 ------------------------------------------ String (type)
    00 04 --------------------------------------- 4 bytes (length)
    4d 69 6b 65 --------------------------------- Mike (value)
    00 03 --------------------------------------- 3 bytes (length)
    61 67 65 ------------------------------------ age (value)
    00 ------------------------------------------ Number (type)
    40 3e 00 00 00 00 00 00 --------------------- 30 (value)
    00 05 --------------------------------------- 5 bytes (length)
    61 6c 69 61 73 ------------------------------ alias (value)
    02 ------------------------------------------ String (type)
    00 04 --------------------------------------- 4 bytes (length)
    4d 69 6b 65 --------------------------------- Mike (value)
    00 00 09 ------------------------------------ Object End (type)
    

    AMF3

    amf3-file-format-spec

    相关文章

      网友评论

          本文标题:AMF (Action Message Format)

          本文链接:https://www.haomeiwen.com/subject/wefcortx.html