gRPC

Posted buchizaodian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gRPC相关的知识,希望对你有一定的参考价值。

.net core 3.0新增加功能

创建grpg服务

一、服务端

 技术图片

 

 

using System.Threading.Tasks;
using Grpc.Core;
using Microsoft.Extensions.Logging;

namespace GrpcGreeter

    public class GreeterService : Greeter.GreeterBase
    
        private readonly ILogger<GreeterService> _logger;
        public GreeterService(ILogger<GreeterService> logger)
        
            _logger = logger;
        

        public override Task<HelloReply> SayHello(HelloRequest request, ServerCallContext context)
        
            return Task.FromResult(new HelloReply
            
                Message = "Hello " + request.Name
            );
        
    

 

 

二、客户端

1.Nuget包

Grpc.Net.Client  包含 .NET Core 客户端

Google.Protobuf  包含适用于 C# 的 Protobuf 消息

Grpc.Tools  包含适用于 Protobuf 文件的 C# 工具支持。 运行时不需要工具包,因此依赖项标记为 PrivateAssets="All"

2.创建Protos文件夹,从 gRPC Greeter 服务将 Protos\\greet.proto 文件复制到 gRPC 客户端项目

3.工程文件添加

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

4.Program.cs

using System;
using System.Threading.Tasks;
using GrpcGreeter;
using Grpc.Net.Client;

namespace GrpcGreeterClient

    class Program
    
        static async Task Main(string[] args)
        
            var channel = GrpcChannel.ForAddress("https://localhost:5001");
            var client = new Greeter.GreeterClient(channel);
            var reply = await client.SayHelloAsync(
                              new HelloRequest  Name = "GreeterClient" );
            Console.WriteLine("Greeting: " + reply.Message);
            Console.WriteLine("Press any key to exit...");
            Console.ReadKey();
        
    

 

以上是关于gRPC的主要内容,如果未能解决你的问题,请参考以下文章

Grpc简介

Grpc简介

gRPC C#学习

gRPC的简介与实例详解

Golang之gRPC初识

Grpc Protobuf v1.20+ 使用说明