amf-js
v1.0.4
Published
Automatic Message Format (AMF0 + AMF3-compatible) HTML5 Javascript Library
Downloads
23
Readme
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);
}