private static async void Grpc()
        {
            //1、开始调用连接
            using var channel = GrpcChannel.ForAddress("https://localhost:5001");

            // 2、创建客户端
            var client = new GrpcService.GrpcServiceClient(channel);

            #region  务器流式处理 (服务器可以响应多个函数)
            var responsesStream = client.StudentServer(
                new RmRequest {
                Name = "小强"
            }
                );

            var readStream = responsesStream.ResponseStream;

            // 1、获取一次输出(for 循环每一次写出)
            while (await readStream.MoveNext())
            {
                RmResponse rmResponse = readStream.Current;

                Console.WriteLine($"客户端收到请求:{rmResponse.Message}");
            }

            Console.WriteLine("Press any key to exit...");

            #endregion
        }
Beispiel #2
0
 public override async Task StudentServer(RmRequest request, IServerStreamWriter <RmResponse> responseStream, ServerCallContext context)
 {
     // 1、打印客户端信息
     Console.WriteLine($"request学生姓名:{request.Name}");
     // 2、流式处理(函数流)
     for (int i = 0; i < 20; i++)
     {
         Thread.Sleep(1000);
         RmResponse rmResponse = new RmResponse()
         {
             Message = "函数流处理,结果:" + i
         };
         await responseStream.WriteAsync(rmResponse);
     }
 }