gRPC 使用小记

1. 首先是创建一个gRPC service,用来提供服务,给到客户端调用

新建即可,值得注意的是

        1. 示例项目中引用了 Grpc.AspNetCore ,用来在api 中注入builder.Services.AddGrpc(); 并且使用中间件  app.MapGrpcService<GreeterService>();

        2. 在csproj 文件中添加了如下iterm

  <ItemGroup>
      <Protobuf Include="Protos\greet.proto" GrpcServices="Both" />
  </ItemGroup>

其他的客户端也需要该配置,或者在任意的现存项目中要使用protobuf 来生成cs 文件都需要如此配置告诉编译器,此外确保不出错,还请检查 proto 文件的属性,是否如下图

2. 如果你要创建一个客户端的话,任意的程序框架都可以,在此使用了console 控制台和webapi 客户端两种,
Install-Package Grpc.Net.Client  // 客户端库

Install-Package Google.Protobuf  //协议库

Install-Package Grpc.Tools   //生成cs 的工具库

都需要上述三个包的引用,此外在webapi 中为了使用DI 和管道,所以还需要额外引入 

Grpc.AspNetCore // 使用clientFactory的扩展库

console程序中可以使用如下流程创建客户端

            using var channel = GrpcChannel.ForAddress("https://localhost:7001");
            var client = new Order.OrderClient(channel);

            var q = client.QueryOrder(new QueryRequest());

webapi中可以使用依赖注入

          builder.Services.AddGrpcClient<Order.OrderClient>(s =>
            {
                s.Address = new Uri("https://localhost:7001");
            });
并在使用的service 中构造函数注入 Order.OrderClient即可

3. 如果需要在web 客户端中使用的话,还需要额外引入Grpc.AspNetCore.Web,实际上grpc 不支持浏览器直接访问,该包提供一个代理服务Envoy 作为中转。

详情参考:

ASP.NET Core gRPC 应用中的 gRPC-Web | Microsoft Learn

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值