123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- 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
|