mastef / amf-js

Automatic Message Format (AMF0 + AMF3-compatible) HTML5 Javascript Library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AMF.JS

This project uses the modern Javascript Typed Array specification (e.g, ArrayBuffer, U8intArray, DataView, etc.).

Designed for browsers or Node.JS.

Errata

Inspiration

Everything you need to know about the data structure:

Understanding [A]BNF frequently referenced throughout the spec:

Reverse-engineering via ActionScript 3:

AS3 Object serialization:

import com.hurlant.util.Hex;
import flash.utils.ByteArray;

// ...

public function serialize():void {
  var o:Object = new Object();
  o.name = "John Doe";
  var byteArray:ByteArray = new ByteArray();
  byteArray.writeObject(o);
  trace("serialized: "+ Hex.fromArray(byteArray));
}

AS3 Object deserialization:

import com.hurlant.util.Hex;
import flash.utils.ByteArray;

// ...

public function dumpObj(oObj:Object, sPrefix:String = ""):void {
  sPrefix == "" ? sPrefix = "---" : sPrefix += "---";
  for (var i:* in oObj) {
    trace(sPrefix, i + " : " + oObj[i], "  ");
    if (typeof(oObj[i]) == "object") dumpObj(oObj[i], sPrefix);
  }
}

public function deserialize():void {
  var byteArray:ByteArray = new ByteArrray();
  // ... fill with bytes ...
  var o:Object = byteArray.readObject();
  trace("deserialized: "+ this.name +" hex= "+ Hex.fromArray(ba));
  dumpObj(o);
}

About

Automatic Message Format (AMF0 + AMF3-compatible) HTML5 Javascript Library


Languages

Language:JavaScript 100.0%