模組msgpack
msgpack是一種比JSON 更輕的數據交換格式,它可以將JSON 物件序列化為二進位數據,以達到更快、更有效率的數據交換效果
msgpack 編碼與解碼模組的引用方式為
1
2var encoding = require('encoding');
var msgpack = encoding.msgpack;
或者
1var msgpack = require('msgpack');
msgpack 模組提供了兩個主要的方法用於訊息處理:encode 和decode。
encode
:以msgpack 編碼寫入給定的資料Value Message.encode(Value data)
。範例程式碼:1 2 3 4 5 6var msgpack = require('msgpack'); var data = { foo: 'bar' }; var buffer = msgpack.encode(data);此方法首先需要傳入需要寫入的數據,然後將該資料儲存為msgpack格式的二進位資料並返回,編碼過程是非常快速的。
decode
:以msgpack 編碼解析訊息中的資料Value Message.decode()
。範例程式碼:1 2 3 4var msgpack = require('msgpack'); var data = msgpack.encode({foo: 'bar'}); var unpackedData = msgpack.decode(data);此時解析中的資料將會是一個json對象
{foo: 'bar'}
,可以直接使用。
msgpack 模組是一種比較高效的序列化和反序列化訊息資料的方式,它能夠將訊息資料以二進位的形式發送到對方,並且避免了文字資料傳輸時的字元組合和還原的效率問題,該模組非常適合在需要處理大量訊息資料的場景下使用。
靜態函數
encode
以msgpack 格式編碼變數
1static Buffer msgpack.encode(Value data);
呼叫參數:
- data: Value, 要編碼的變數
回傳結果:
- Buffer, 傳回編碼的二進位數據
decode
以msgpack 方式解碼字串為一個變數
1static Value msgpack.decode(Buffer data);
呼叫參數:
- data:Buffer, 要解碼的二進位數據
回傳結果:
- Value, 返回解碼的變數