discord-rpc/test-rpc-server/rpc-message.js
2017-06-27 13:19:36 -07:00

25 lines
659 B
JavaScript

module.exports = class RpcMessage {
static serialize(obj) {
const serializedJson = JSON.stringify(obj);
const msgLen = 4 + serializedJson.length;
let buff = Buffer.alloc(msgLen);
buff.writeInt32LE(msgLen, 0);
buff.write(serializedJson, 4, serializedJson.length, 'utf-8');
return buff;
}
static deserialize(buff) {
const msgLen = buff.readInt32LE(0);
if (buff.length < msgLen) {
return null;
}
const msg = buff.toString('utf-8', 4, msgLen);
try {
return JSON.parse(msg);
} catch(e) {
return {};
}
}
};