import { common, } from './../proto/bundle'; import ProtoConfig from './../API/ProtoConfig'; function getMsgWebsocket(version, server, servant, buffer) { return common.MsgWebsocket.create({ version: version, app: 1, server: server, servant: servant, data: buffer, }); }; function getRequestBuffer(request, buffer) { const requestMessage = getMsgWebsocket(request.version ? request.version : 1, request.server, request.servant, buffer); const requestBuffer = common.MsgWebsocket.encode(requestMessage).finish(); return new Uint8Array([...requestBuffer]).buffer; }; function getResponseDataBuf(response) { const resBuf = Buffer.from(response.data); const resMessage = common.MsgWebsocket.decode(resBuf); return resMessage.data; }; function requestEncode(request) { //请求的编码 const RequestMessage = ProtoConfig[request.servant]; const requestMsgObj = RequestMessage.create(request.data); const buffer = RequestMessage.encode(requestMsgObj).finish(); //返回请求的ArrayBuffer return getRequestBuffer(request, buffer); }; function responseDecode(response) { //响应的解码 const resBuf = Buffer.from(response); const resMessage = common.MsgWebsocket.decode(resBuf); console.log(resMessage) const rspBuf = resMessage.data; const ResponseMessage = ProtoConfig[resMessage.servant]; const rspMsgObj = ResponseMessage.decode(rspBuf); const obj = ResponseMessage.toObject(rspMsgObj, { longs: String, enums: String, }); return obj }; module.exports = { requestEncode, responseDecode, }