1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- import protoRoot from '../proto/proto'
- //let root = protobufRoot.fromJSON(person);
- const MsgWebsocket = protoRoot.lookupType('common.MsgWebsocket')
- const protoMap = {
- 1005: protoRoot.lookupType('user.login_req'),
- 1006: protoRoot.lookupType('user.login_rsp'),//登录返回
- }
- function getMsgWebsocket(version, server, servant, buffer) {
- return MsgWebsocket.create({
- version: version,
- app: 1,
- server: server,
- servant: servant,
- data: buffer,
- })
- }
- function getRequestBuffer(request, buffer) {
- let requestMessage = getMsgWebsocket(1, request.server, request.servant, buffer)
- let requestBuffer = MsgWebsocket.encode(requestMessage).finish()
- return new Uint8Array([...requestBuffer]).buffer
- }
- function getResponseDataBuf(response) {
- let resBuf = Buffer.from(response.data)
- let resMessage = MsgWebsocket.decode(resBuf)
- return resMessage.data
- }
- function requestEncode(request) { //请求的编码
- let RequestMessage = protoMap[request.servant]
- let requestMsgObj = RequestMessage.create(request.data)
- console.log(requestMsgObj);
- let buffer = RequestMessage.encode(requestMsgObj).finish()
- //返回请求的ArrayBuffer
- return getRequestBuffer(request, buffer)
- }
- function responseDecode(response) { //响应的解码
- let resBuf = Buffer.from(response.data)
- let resMessage = MsgWebsocket.decode(resBuf)
- let rspBuf = resMessage.data
- let ResponseMessage = protoMap[resMessage.servant]
- let rspMsgObj = ResponseMessage.decode(rspBuf)
- console.log(rspMsgObj);
- let obj = ResponseMessage.toObject(rspMsgObj, {
- longs: String,
- enums: String,
- })
- return obj
- }
- module.exports = {
- requestEncode,
- responseDecode,
- }
|