码迷,mamicode.com
首页 > 其他好文 > 详细

gRPC

时间:2019-10-04 15:18:56      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:技术   适用于   ilo   ros   names   grpc   div   soft   adk   

.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

标签:技术   适用于   ilo   ros   names   grpc   div   soft   adk   

原文地址:https://www.cnblogs.com/buchizaodian/p/11621979.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!