2021-05-19 ASP.NET Core笔试题 说说如何使用C#实现简单模式gRPC

本文介绍如何使用C#实现简单的gRPC服务,包括服务端和客户端的搭建过程。服务端通过Visual Studio新建gRPC服务,并配置proto文件生成对应的类;客户端则通过复制服务端的proto文件并进行相应配置,最终实现调用服务端的方法。

说说如何使用C#实现简单模式gRPC

分为客户端和服务端;

服务端:

1.通过vs新建一个gRPC服务,会内置一proto文件;内容如下,可以理解成是一个模板,通过这个模板可以生成对应的类文件。

syntax = "proto3";  //规范---标准---工具生成C#

option csharp_namespace = "Zhaoxi.gRPCDemo.DefaultServer";

package greet;

// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply);
}

// The request message containing the user's name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings.
message HelloReply {
  string message = 1;
}

2.需要让这个文件生效,就必须要在项目文件中配置使用这个文件;GrpcServices=“Server”,这是服务端的配置;

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

3.编译,就可以通过这个模板生成一些类,包含这些类的方法;

客户端:

1.Vs新建一个控制台,作为客户端

2.把服务端的那个proto文件,连同文件一起Copy到客户端来。

3.配置客户端的项目文件,如下。请注意 GrpcServices=“Client”

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

4.编译后,编写调用gRPC的方法如下:

private static async Task TestHello()
{
     using (var channel = GrpcChannel.ForAddress("https://localhost:5001"))
     {
        var client = new Greeter.GreeterClient(channel);
        var reply = await client.SayHelloAsync(new HelloRequest { Name = "朝夕教育" });
        Console.WriteLine("Greeter 服务返回数据: " + reply.Message); 
      }
 }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值