|
@@ -0,0 +1,104 @@
|
|
|
|
+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
|