grpc-web
grpc-web [https://www.fenxianglu.cn/allSearch?category=0&keyword=grpc](https://www.fenxianglu.cn/allSearch?category=0&keyword=grpc)
protoc -I=./ ./domain_result.proto \--js_out=import_style=commonjs:./ \--plugin=protoc-gen-grpc=./protoc-gen-grpc-web.exe \--grpc-web_out=import_style=commonjs+dts,mode=grpcwebtext:./
node-grpc
版本
"@grpc/grpc-js": "^1.2.12","@grpc/proto-loader": "^0.5.6",
案例代码
/*** 二级域名探测*/const PROTO_PATH = __static + '\\protos\\domain_result.proto'; // 这个需要加载 绝对路径const grpc = require('@grpc/grpc-js');const protoLoader = require('@grpc/proto-loader');import { message as Message } from "ant-design-vue";const packageDefinition = protoLoader.loadSync(PROTO_PATH,{keepCase: true,longs: String,enums: String,defaults: true,oneofs: true});const protoDescriptor = grpc.loadPackageDefinition(packageDefinition).request_result;// 连接grpcconst client = new protoDescriptor.Domain('localhost:9000',grpc.credentials.createInsecure());// 对外暴漏的方法export const domain = function (form) {// service里面方法client.Domain({// "Rate": 20,"Domain": [form.port ],// "ListNetWork": true,// "Debug": true,"DomainLevel": 1,// "SubNameFileData": "Hello"}, (err, res) => {console.log(err);if (err) {return Message.error(err.error)}if (res.Messages) {sessionStorage.domain = res.Messages;}});}
