import { common, user } from '../proto/proto.js'; const URL = 'http://60.205.190.38:80/Ohplay/Web/HttpToTcp'; const protoMap = {} function getMsgWebsocket(version, server, servant, buffer) { return common.MsgWebsocket.create({ version: version, app: 1, server: server, servant: servant, data: buffer, }) } protoMap['1005'] = { requestEncode: function(request) { //登录请求的编码 let loginMessage = user.login_req.create({ phone: Buffer.from(request.data.phone), type: request.data.type, verifyInfo: Buffer.from(request.data.verifyInfo), }) let buffer = user.login_req.encode(loginMessage).finish() let requestMessage = getMsgWebsocket(1, request.server, request.servant, buffer) let requestBuffer = common.MsgWebsocket.encode(requestMessage).finish() return new Uint8Array([...requestBuffer]).buffer }, responseDecode: function(response) { //登录响应的解码 let resBuf = Buffer.from(response.data) let resMessage = common.MsgWebsocket.decode(resBuf) let loginRspBuf = resMessage.data let loginRspMessage = user.login_rsp.decode(loginRspBuf) let obj = user.login_rsp.toObject(loginRspMessage, { longs: String, enums: String, }) return obj } } // protoMap['1005'] = { // requestEncode : function(request){//请求的编码 // } function post(request) { let encodeFun = protoMap[request.servant.toString()].requestEncode; console.log(typeof encodeFun); //if (typeof encodeFun === "function") { let requestBuffer = encodeFun(request) //} return uni.request({ //url:'https://test.api1.radio1964.com:80/Ohplay/Web/HttpToTcp' url: URL, header: { "X-Requested-With": "XMLHttpRequest", "Content-Type": "application/x-protobuf", 'Token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVc2VyaWQiOjY1MDYzMywibmFtZSI6IjE4MTI2NDQ3MDE1IiwiZXhwIjoxNjIyODg0NTA1fQ.f7jIm0856-VnynA99MBoA2Dl1pePxI0HT_ECsUp5QHA' }, method: 'POST', timeout: 15000, dataType: 'protobuf', responseType: 'arraybuffer', data: requestBuffer }).then((res) => { for (let response of res) { if (response !== null && response !== undefined && response.statusCode === 200) { try { let enc = new TextDecoder('utf-8') let resJson = JSON.parse(enc.decode(new Uint8Array(response.data))) //转化成json对象 console.log(resJson); return { code: resJson.code, msg: resJson.info } } catch (e) { let decodeFun = protoMap[request.servant.toString()].responseDecode // if (typeof decodeFun === "function") { let data = decodeFun(response) console.log(data); let code = 0 let msg = "success" if(data.errInfo !== undefined){ code = data.errInfo.errorCode msg = Buffer.from(data.errInfo.errorMessage).toString() } return { code: code, msg: msg, data: data } // } } } } }) } module.exports = post