<二> 新建自定义服务
上一篇我们运行了并调用了自带的服务。这里自己建一个自定义服务。
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、先启动服务再启动客户端
成功了!!