带角度6的GRPC Web客户端

时间:2018-08-15 10:42:12

标签: angular typescript grpc grpc-web

我已经使用grpc .net客户端和使用Java创建的grpc服务器,如何在带有Typescript的angular 6上实现grpc Web客户端?另外我该如何创建原型文件,它是为打字稿打字的? 我正在跟踪this存储库,但无法生成原型文件。

5 个答案:

答案 0 :(得分:2)

花了一段时间后,我可以通过以下步骤为打字稿创建原型文件:

  1. 从此link下载适用于Windows的protobuf。提取文件后,设置protoc.exe的路径变量
  2. 安装npm软件包protected override void OnModelCreating(ModelBuilder modelBuilder) { base.OnModelCreating(modelBuilder); modelBuilder.Entity<ProductDetails>().HasRequired(pd => pd.Product).WithMany(p => p.ProductDetails).HasForeignKey(pd => pd.ProductId).WillCascadeOnDelete(true); }
  3. 安装后,使用以下命令生成打字稿文件: npm install google-protobuf @types/google-protobuf grpc-web-client ts-protoc-gen --save
  4. 最终像本repo中所述消耗它。

答案 1 :(得分:1)

grpc / grpc-web可从https://github.com/grpc/grpc-web

获得。

答案 2 :(得分:1)

您还可以通过运行以下命令使其工作:

npm install google-protobuf protoc ts-protoc-gen

然后将一个编译脚本添加到package.json:

"compile": "./node_modules/protoc/protoc/bin/protoc --plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts --js_out=import_style=commonjs,binary:src/app/proto-gen --ts_out=service=true:src/app/proto -I ./src/app/proto ./src/app/proto/**/*.proto",

现在您可以使用以下命令将.proto文件编译为服务:

npm run compile

您可以在此处看到该方法的工作原理

https://github.com/kmturley/angular-nest-grpc

答案 3 :(得分:0)

不能在Windows上使用

"compile": "./node_modules/protoc/protoc/bin/protoc
--plugin=protoc-gen-ts=./node_modules/.bin/protoc-gen-ts --js_out=import_style=commonjs,binary:src/app/proto-gen --ts_out=service=true:src/app/proto -I ./src/app/proto ./src/app/proto/**/*.proto",

我得到'。不被识别为内部或外部命令

这很好用:package.json

"scripts": {
"compile": "node_modules\\protoc\\protoc\\bin\\protoc --plugin=protoc-gen-ts=node_modules\\.bin\\protoc-gen-ts.cmd --js_out=import_style=commonjs,binary:./proto/generated --ts_out=service=grpc-web:./proto/generated -I ./proto ./proto/*.proto"
}

npm运行编译

答案 4 :(得分:0)

Windows 上的自动解决方案:

  1. npm i @types/google-protobuf --save-dev
  2. npm i google-protobuf --save
  3. npm i grpc-web-client --save
  4. npm i ts-protoc-gen --save

或者对于 1 到 4 可以使用这个命令: npm i @types/google-protobuf google-protobuf grpc-web-client ts-protoc-gen --save

  1. 将此行添加到 package.json:

    “脚本”:{

    "grpc:gen": "protoc --plugin=protoc-gen-ts=node_modules\\ts-protoc-gen\\bin\\protoc-gen-ts.cmd --js_out=import_style=commonjs,binary:proto\\out --ts_out=service=grpc-web:proto\\out proto\\greet.proto"
    

    }

  2. 用这个命令生成 ts 文件 npm run grpc:gen

代码可在此处获得: Server for .net Core Client for angular