什么是gRPC
gRPC 是一种与语言无关的高性能远程过程调用 (RPC) 框架。
创建服务端
- 创建名为一个Greeter的解决方案;
- 在该解决方案下新建一个
gRPC
项目,项目名为Server;
此时已自动创建一个WebApi gRPC示例项目,Program.cs
代码如下:using Server.Services; var builder = WebApplication.CreateBuilder(args); builder.Services.AddGrpc(); var app = builder.Build(); app.MapGrpcService<GreeterService>(); app.MapGet("/", () => "This id a .Net8 gRPC Demo"); app.Run();
创建客户端
- 同样,在Greeter解决方案下新建一个控制台应用,项目名为Client;
- 添加服务应用:
项目右键
->添加
->服务引用
。 - 编写客户端调用代码
using Grpc.Net.Client; using Server; // 更换为Server的端口 using var channel = GrpcChannel.ForAddress("https://localhost:5001"); var client = new Greeter.GreeterClient(channel); var reply = await client.SayHelloAsync(new HelloRequest { Name = "gRPC" }); Console.WriteLine("服务响应: " + reply.Message); Console.ReadKey();
运行测试
- 分别运行Server和Client
参考资料
https://learn.microsoft.com/zh-cn/aspnet/core/grpc/?view=aspnetcore-8.0