import * as ByteBuffer from "../3rd/bytebuffer"; import SKSocket from "./SKSocket"; export default class SKPacket{ prefix:string; constructor(){ } static create(prefix:string):SKPacket{ let packet=new SKPacket(); packet.prefix=prefix; return packet; } encode(properties:any):any{ let msg=SKSocket.pbroot.lookupType(`${SKSocket.pbname}.${this.prefix}`); if(!msg){ return; } let packet=msg.create(properties); let body:Uint8Array=msg.encode(packet).finish(); if(!body){ return; } let buffer=new ByteBuffer(); buffer.writeShort(this.prefix.length); buffer.writeString(this.prefix); buffer.writeString("MH"); buffer.append(body); buffer.flip(); let result=buffer.toBuffer(); return result; } decode(buffer:Uint8Array):any{ let msg=SKSocket.pbroot.lookupType(`${SKSocket.pbname}.${this.prefix}`); let result=msg.decode(buffer); return result; } }