zoukankan      html  css  js  c++  java
  • 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 服务将 Protosgreet.proto 文件复制到 gRPC 客户端项目

    3.工程文件添加

    <ItemGroup>
      <Protobuf Include="Protosgreet.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();
            }
        }
    }
  • 相关阅读:
    深入理解C++的动态绑定和静态绑定
    【转载】“惊群”,看看nginx是怎么解决它的
    352. Data Stream as Disjoint Intervals
    lambda
    auto
    sizeof(类)
    private是自己私有的,protected是可以让孩子知道的,public是公开的
    【转载】C++ typedef用法小结
    string char * const char *之间的互相转换
    【转载】Web Service 的工作原理
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/11621979.html
Copyright © 2011-2022 走看看