瀏覽代碼

some commit

houjie 4 年之前
父節點
當前提交
4e80484707
共有 6 個文件被更改,包括 128 次插入94 次删除
  1. 11 48
      common/httpClient.js
  2. 84 0
      common/protoMap.js
  3. 7 6
      pages/index/mine.vue
  4. 1 1
      proto/Common.proto
  5. 5 1
      proto/User.proto
  6. 20 38
      proto/bundle.js

+ 11 - 48
common/httpClient.js

@@ -1,54 +1,12 @@
-import {
-	common,
-	user
-} from '../proto/proto.js';
+import {getEncodeFun,getDecodeFun} from "./protoMap"
 
-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
-	}
-}
+const URL = 'http://60.205.190.38:80/Ohplay/Web/HttpToTcp';
 
-// protoMap['1005'] = {
-// 	requestEncode : function(request){//请求的编码
-// }
 
 
 function post(request) {
-	let encodeFun = protoMap[request.servant.toString()].requestEncode;
+	let encodeFun = getEncodeFun(request.servant);
 	console.log(typeof encodeFun);
 	//if (typeof encodeFun === "function") {
 	let requestBuffer = encodeFun(request)
@@ -78,16 +36,21 @@ function post(request) {
 						msg: resJson.info
 					}
 				} catch (e) {
-					let decodeFun = protoMap[request.servant.toString()].responseDecode
+					let decodeFun = getDecodeFun(request.servant)
 					// if (typeof decodeFun === "function") {
 						let data = decodeFun(response)
 						console.log(data);
 						let code = 0
 						let msg = "success"
-						if(data.errInfo !== undefined){
+						if(typeof data.errInfo !== 'undefined'){
 							code = data.errInfo.errorCode
-							msg = Buffer.from(data.errInfo.errorMessage).toString()
+							if(typeof data.errInfo.errorMessage === 'string'){
+								msg = data.errInfo.errorMessage
+							}else{
+								msg = Buffer.from(data.errInfo.errorMessage).toString()
+							}
 						}
+						//throw "Error2"
 						return {
 							code: code,
 							msg: msg,

+ 84 - 0
common/protoMap.js

@@ -0,0 +1,84 @@
+import {
+	common,
+	user
+} from '../proto/bundle.js';
+
+const protoMap = {}
+
+function getEncodeFun(servant) {
+	return protoMap[servant.toString()].requestEncode;
+}
+
+function getDecodeFun(servant) {
+	return protoMap[servant.toString()].responseDecode
+}
+
+function getMsgWebsocket(version, server, servant, buffer) {
+	return common.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 = common.MsgWebsocket.encode(requestMessage).finish()
+	return new Uint8Array([...requestBuffer]).buffer
+}
+
+function getResponseDataBuf(response){
+	let resBuf = Buffer.from(response.data)
+	let resMessage = common.MsgWebsocket.decode(resBuf)
+	return resMessage.data
+}
+
+//1005 是后端提供的此接口的servant
+protoMap['1005'] = {
+	requestEncode: function(request) { //登录请求的编码
+		//创建login_req的message对象
+		let loginMessage = user.login_req.create({
+			type: request.data.type,
+			//如果phone定义的是bytes,这里要转换一下,
+			//如果phone定义的是string,这里就不需要Buffer.from了
+			//要确认phone是string类型,才能把phone的bytes更换成string
+			phone: Buffer.from(request.data.phone),
+			//同phone,在proto文件中字段名(verifyInfo)最好用驼峰命名规则,不要用verify_info
+			verifyInfo: Buffer.from(request.data.verifyInfo),
+		})
+		//login_req的message 编码转换为Buffer数据
+		let buffer = user.login_req.encode(loginMessage).finish()
+		//返回请求的ArrayBuffer
+		return getRequestBuffer(request,buffer)
+	},
+	responseDecode: function(response) { //登录响应的解码
+		//得到loginRsp message的buffer数据
+		let loginRspBuf = getResponseDataBuf(response)
+		//解码得到loginRsp的message对象
+		let loginRspMessage = user.login_rsp.decode(loginRspBuf)
+		//把loginRsp Message对象转换为js对象
+		let obj = user.login_rsp.toObject(loginRspMessage, {
+			longs: String,
+			enums: String,
+		})
+		//如果proto定义的字段是bytes,在这里可以转换成一下String
+		//也可以直接在proto文件中把字段的bytes 类型 替换成string类型,
+		//但是要确认这个字段是string类型的,string类型在这里就不需要转换了
+		if(typeof obj.errInfo.errorMessage !== 'undefined'){
+			obj.errInfo.errorMessage = Buffer.from(obj.errInfo.errorMessage).toString()
+		}
+		if(typeof obj.token !== 'undefined'){
+			obj.token = Buffer.from(obj.token).toString()
+		}
+		return obj
+	}
+}
+
+
+
+module.exports = {
+	getEncodeFun,
+	getDecodeFun,
+}

+ 7 - 6
pages/index/mine.vue

@@ -10,7 +10,7 @@
 </template>
 
 <script>
-	import httpClient from '../../common/httpClient.js'
+	import post from '../../common/httpClient.js'
 	import {common,	user} from '../../proto/proto.js';
 	//const protobuf = require("protobufjs/minimal");
 	const axios = require('axios');
@@ -51,7 +51,8 @@
 				console.log(e.detail.encryptedData)
 			},
 			wxHttpTest() {
-				httpClient({
+				//try{
+				post({
 					server:2,
 					servant:1005,
 					data:{
@@ -62,11 +63,11 @@
 				})
 				.then((res) =>{
 					console.log(res)
-					if(res.code === 0){//成功
+					// if(res.code === 0){//成功
 						
-					}else{
-						//失败
-					}
+					// }else{
+					// 	//失败
+					// }
 				}, (err) => {
 					console.log(err);
 				})

+ 1 - 1
proto/Common.proto

@@ -4,7 +4,7 @@ package common;
 
 message ErrorInfo {
     fixed32 errorCode = 1; //错误码
-    bytes errorMessage = 2; //错误描述信息
+    string errorMessage = 2; //错误描述信息
 }
 
 message AwesomeMessage{

+ 5 - 1
proto/User.proto

@@ -19,7 +19,11 @@ message login_req
 message login_rsp {
     ErrorInfo errInfo  = 1; // 错误码信息
     uint32   id       = 2;
-    bytes    token    = 3; // 访问令牌
+    string    token    = 3; // 访问令牌
     bytes sskey       = 4;
 }
 
+
+
+
+

+ 20 - 38
proto/bundle.js

@@ -25,7 +25,7 @@ $root.common = (function() {
          * @memberof common
          * @interface IErrorInfo
          * @property {number|null} [errorCode] ErrorInfo errorCode
-         * @property {Uint8Array|null} [errorMessage] ErrorInfo errorMessage
+         * @property {string|null} [errorMessage] ErrorInfo errorMessage
          */
 
         /**
@@ -53,11 +53,11 @@ $root.common = (function() {
 
         /**
          * ErrorInfo errorMessage.
-         * @member {Uint8Array} errorMessage
+         * @member {string} errorMessage
          * @memberof common.ErrorInfo
          * @instance
          */
-        ErrorInfo.prototype.errorMessage = $util.newBuffer([]);
+        ErrorInfo.prototype.errorMessage = "";
 
         /**
          * Creates a new ErrorInfo instance using the specified properties.
@@ -86,7 +86,7 @@ $root.common = (function() {
             if (message.errorCode != null && Object.hasOwnProperty.call(message, "errorCode"))
                 writer.uint32(/* id 1, wireType 5 =*/13).fixed32(message.errorCode);
             if (message.errorMessage != null && Object.hasOwnProperty.call(message, "errorMessage"))
-                writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.errorMessage);
+                writer.uint32(/* id 2, wireType 2 =*/18).string(message.errorMessage);
             return writer;
         };
 
@@ -125,7 +125,7 @@ $root.common = (function() {
                     message.errorCode = reader.fixed32();
                     break;
                 case 2:
-                    message.errorMessage = reader.bytes();
+                    message.errorMessage = reader.string();
                     break;
                 default:
                     reader.skipType(tag & 7);
@@ -166,8 +166,8 @@ $root.common = (function() {
                 if (!$util.isInteger(message.errorCode))
                     return "errorCode: integer expected";
             if (message.errorMessage != null && message.hasOwnProperty("errorMessage"))
-                if (!(message.errorMessage && typeof message.errorMessage.length === "number" || $util.isString(message.errorMessage)))
-                    return "errorMessage: buffer expected";
+                if (!$util.isString(message.errorMessage))
+                    return "errorMessage: string expected";
             return null;
         };
 
@@ -186,10 +186,7 @@ $root.common = (function() {
             if (object.errorCode != null)
                 message.errorCode = object.errorCode >>> 0;
             if (object.errorMessage != null)
-                if (typeof object.errorMessage === "string")
-                    $util.base64.decode(object.errorMessage, message.errorMessage = $util.newBuffer($util.base64.length(object.errorMessage)), 0);
-                else if (object.errorMessage.length)
-                    message.errorMessage = object.errorMessage;
+                message.errorMessage = String(object.errorMessage);
             return message;
         };
 
@@ -208,18 +205,12 @@ $root.common = (function() {
             var object = {};
             if (options.defaults) {
                 object.errorCode = 0;
-                if (options.bytes === String)
-                    object.errorMessage = "";
-                else {
-                    object.errorMessage = [];
-                    if (options.bytes !== Array)
-                        object.errorMessage = $util.newBuffer(object.errorMessage);
-                }
+                object.errorMessage = "";
             }
             if (message.errorCode != null && message.hasOwnProperty("errorCode"))
                 object.errorCode = message.errorCode;
             if (message.errorMessage != null && message.hasOwnProperty("errorMessage"))
-                object.errorMessage = options.bytes === String ? $util.base64.encode(message.errorMessage, 0, message.errorMessage.length) : options.bytes === Array ? Array.prototype.slice.call(message.errorMessage) : message.errorMessage;
+                object.errorMessage = message.errorMessage;
             return object;
         };
 
@@ -1223,7 +1214,7 @@ $root.user = (function() {
          * @interface Ilogin_rsp
          * @property {common.IErrorInfo|null} [errInfo] login_rsp errInfo
          * @property {number|null} [id] login_rsp id
-         * @property {Uint8Array|null} [token] login_rsp token
+         * @property {string|null} [token] login_rsp token
          * @property {Uint8Array|null} [sskey] login_rsp sskey
          */
 
@@ -1260,11 +1251,11 @@ $root.user = (function() {
 
         /**
          * login_rsp token.
-         * @member {Uint8Array} token
+         * @member {string} token
          * @memberof user.login_rsp
          * @instance
          */
-        login_rsp.prototype.token = $util.newBuffer([]);
+        login_rsp.prototype.token = "";
 
         /**
          * login_rsp sskey.
@@ -1303,7 +1294,7 @@ $root.user = (function() {
             if (message.id != null && Object.hasOwnProperty.call(message, "id"))
                 writer.uint32(/* id 2, wireType 0 =*/16).uint32(message.id);
             if (message.token != null && Object.hasOwnProperty.call(message, "token"))
-                writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.token);
+                writer.uint32(/* id 3, wireType 2 =*/26).string(message.token);
             if (message.sskey != null && Object.hasOwnProperty.call(message, "sskey"))
                 writer.uint32(/* id 4, wireType 2 =*/34).bytes(message.sskey);
             return writer;
@@ -1347,7 +1338,7 @@ $root.user = (function() {
                     message.id = reader.uint32();
                     break;
                 case 3:
-                    message.token = reader.bytes();
+                    message.token = reader.string();
                     break;
                 case 4:
                     message.sskey = reader.bytes();
@@ -1396,8 +1387,8 @@ $root.user = (function() {
                 if (!$util.isInteger(message.id))
                     return "id: integer expected";
             if (message.token != null && message.hasOwnProperty("token"))
-                if (!(message.token && typeof message.token.length === "number" || $util.isString(message.token)))
-                    return "token: buffer expected";
+                if (!$util.isString(message.token))
+                    return "token: string expected";
             if (message.sskey != null && message.hasOwnProperty("sskey"))
                 if (!(message.sskey && typeof message.sskey.length === "number" || $util.isString(message.sskey)))
                     return "sskey: buffer expected";
@@ -1424,10 +1415,7 @@ $root.user = (function() {
             if (object.id != null)
                 message.id = object.id >>> 0;
             if (object.token != null)
-                if (typeof object.token === "string")
-                    $util.base64.decode(object.token, message.token = $util.newBuffer($util.base64.length(object.token)), 0);
-                else if (object.token.length)
-                    message.token = object.token;
+                message.token = String(object.token);
             if (object.sskey != null)
                 if (typeof object.sskey === "string")
                     $util.base64.decode(object.sskey, message.sskey = $util.newBuffer($util.base64.length(object.sskey)), 0);
@@ -1452,13 +1440,7 @@ $root.user = (function() {
             if (options.defaults) {
                 object.errInfo = null;
                 object.id = 0;
-                if (options.bytes === String)
-                    object.token = "";
-                else {
-                    object.token = [];
-                    if (options.bytes !== Array)
-                        object.token = $util.newBuffer(object.token);
-                }
+                object.token = "";
                 if (options.bytes === String)
                     object.sskey = "";
                 else {
@@ -1472,7 +1454,7 @@ $root.user = (function() {
             if (message.id != null && message.hasOwnProperty("id"))
                 object.id = message.id;
             if (message.token != null && message.hasOwnProperty("token"))
-                object.token = options.bytes === String ? $util.base64.encode(message.token, 0, message.token.length) : options.bytes === Array ? Array.prototype.slice.call(message.token) : message.token;
+                object.token = message.token;
             if (message.sskey != null && message.hasOwnProperty("sskey"))
                 object.sskey = options.bytes === String ? $util.base64.encode(message.sskey, 0, message.sskey.length) : options.bytes === Array ? Array.prototype.slice.call(message.sskey) : message.sskey;
             return object;