# readme ## 生成服务 执行gen.bat 重新生成服务文件 ### 安装依赖 cnpm i google-protobuf cnpm install --save grpc-web ### 使用 #### 单页引用 import {SignInPasswordRequest, FlushDataRequest, Data} from "@/assets/grpcBack/im_pb"; //{}内容为传入参数的方法名,按实际需求添加 import {ApiClient} from "@/assets/grpcBack/im_grpc_web_pb"; // 固定内容无需修改 [comment]: <> (function) let that = this; //端口地址 this.client = new ApiClient("http://192.168.0.3:20010", null, null); // 报文内容和方法,方法取自im.proto文件 rpc rpc SignInUserCode (SignInPasswordRequest) returns (TokenParam) {} let pwdtext = "asdf*123" let authtext = "admin" let getRequest = new SignInPasswordRequest(); // 对报文内容字符串进行编码 ,setXXX方法取自im.proto文件 message SignInPasswordRequest { ... ,内部属性要加set前缀字 getRequest.setPassword(pwdtext); getRequest.setAuth(authtext); getRequest.setExpirationsec(10000); //接口名取自im.proto文件 rpc rpc SignInUserCode (SignInPasswordRequest) returns (TokenParam) {} let res = this.client.signInUserCode(getRequest, {}, (err, response) => { //回调方法名取自im.proto文件 rpc SignInUserCode ( SignInPasswordRequest) returns (TokenParam) {} 的TokenParam返回值, //内部属性要加get前缀字 this.message = response.getToken(); }); //****注意,加前缀子的编码方法和回调方法的大小写请逐一在im_grpc_web_pb.js文件中核对,转换规则一般是小驼峰书写。 #### 全局使用 main.js 里 import {ApiClient} from "../src/grpc/im_grpc_web_pb"; // 建立grpc连接服务 let client = new ApiClient("http://192.168.0.3:20010", null, null); // 挂载为全局方法 Vue.prototype.client = client; 目标vue页面 里 按需引入 import {SignInPasswordRequest} from "@/grpc/im_pb"; ... methods: { grpcServe(){ let that = this; let getRequest = new SignInPasswordRequest(); getRequest.setPassword("asdf* 123"); getRequest.setAuth("admin"); getRequest.setExpirationsec(10000); that.client.signInUserCode(getRequest, {}, (err, response) => { that.TodayCalcValues = response.getToken(); }); }, //TodayCalcValues为显示容器