<二> 新建自定义服务

上一篇我们运行了并调用了自带的服务。这里自己建一个自定义服务。

1、新建一个proto文件。并编写定义,并在csproj项目文件中添加描述,添加完成后点击生成。

 

syntax = "proto3";

option csharp_namespace = "GrpcService1";
import "google/protobuf/empty.proto";
package SayHi;


//定义服务
service SayHier{
    //定义
    rpc SayHillo(SayHiRequest) returns(SayHiResult);
}

message SayHiRequest
{
    string name=1;
}
message SayHiResult{
    string message=1;
}

 

 

 

2、服务实现 SayHiService.cs

  public class SayHierService : SayHier.SayHierBase
    {
        public override Task<SayHiResult> SayHillo(SayHiRequest  request, ServerCallContext context)
        {
            return Task.FromResult(new SayHiResult
            {
                Message = "Hillo " + request.Name
            });
        }
    }

 

3、服务端startup中添加终结点

 

4、客户端配置服务。将sayhi.proto文件拷贝,并在client的解决方案中添加

 

 

 

 

 5、客户端调用服务

 
   var channel = GrpcChannel.ForAddress("https://localhost:5001");

            var client = new SayHier.SayHierClient(channel);
            var reply = await client.SayHilloAsync(new SayHiRequest() { Name = "luffy" });
            Console.WriteLine($"sayhillo  服务返回数据 {reply.Message}");

6、先启动服务再启动客户端

 

 

 

 成功了!!

参考文章:ASP.NET Core 3.0 使用gRPC

 

posted @ 2020-05-09 17:15  许轩霖  阅读(55)  评论(0编辑  收藏  举报