Skip to content
uupaa edited this page Aug 1, 2015 · 10 revisions

Namespace

MessagePack オブジェクトは、WebModule 名前空間以下に配置(WebModule.MessagePack)されています。

MessagePack.js を読み込む前に WebModule.publish = true; を行うと、 MessagePack オブジェクトを GLOBAL 名前空間以下に直接配置 できます。

API

var MessagePack = {
    "encode": MessagePack_encode, // MessagePack.encode(source:Any, options:Object = {}):Uint8Array
    "decode": MessagePack_decode, // MessagePack.decode(source:Uint8Array, options:Object = {}):Any
    "pack":   MessagePack_pack,   // MessagePack.pack(source:Any):Object - { data:Uint8Array, type:INT8 }
    "unpack": MessagePack_unpack, // MessagePack.unpack(data:Uint8Array, type:INT8):Any
};

MessagePack.encode

MessagePack.encode(...) は、source を受け取り MessagePack でエンコードした新しい Unit8Array を返します。

function MessagePack_encode(source,    // @arg Any - null, undefined, Boolean, Number, String, Array, Object, Uint8Array
                            options) { // @arg Object = {} - { pack, askey, ascii, buffer }
                                       // @options.pack Function = MessagePack.pack - TYPE_EXT encode function.
                                       // @options.askey Boolean = false - Map key encode to FIX_STR ASCII.
                                       // @options.ascii Boolean = false - String encode to FIX_STR ASCII.
                                       // @options.buffer Uint8Array = null - encode buffer.
                                       // @ret Uint8Array - return new view of buffer.
}

options に指定可能な値は以下の通りです。詳細は EncodeOptions を参照してください。

Keywords
askey:Boolean = false 条件付きでObjectの変換処理を高速化します
ascii:Boolean = false 条件付きでStringの変換処理を高速化します
buffer:Uint8Array = null 内部で使用するバッファを指定します
pack:Function = null USER_DEFINED_TYPE で使用する関数を指定します
var packed = MessagePack.encode("Hello world"); // Uint8Array [171, 72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]

console.log( MessagePack.decode(packed) ); // "Hello world"

オブジェクトや配列のネストが512を超えると、循環参照エラーが発生します。

MessagePack.decode

MessagePack.decode(...) は MessagePack バイナリをデコードし元のオブジェクトを復元します。

function MessagePack_decode(source,    // @arg Uint8Array - MessagePacked data
                            options) { // @arg Object = {} - { unpack, askey, ascii, copy }
                                       // @options.unpack Function = MessagePack.unpack - TYPE_EXT decode function.
                                       // @options.askey Boolean = false - Map key decode to FIX_STR ASCII.
                                       // @options.ascii Boolean = false - String decode to FIX_STR ASCII.
                                       // @options.copy Boolean = false - copy memory.
                                       // @ret Any
}

options に指定可能な値は以下の通りです。詳細は EncodeOptions を参照してください。

Keywords
unpack:Function = null USER_DEFINED_TYPE で使用する関数を指定します
askey:Boolean = false 条件付きでObjectの復元処理を高速化します
ascii:Boolean = false 条件付きでStringの復元処理を高速化します
copy:Boolean = false 内部バッファのコピーを行います
Clone this wiki locally