-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgrpc-stream-na-server.cs
More file actions
executable file
·39 lines (32 loc) · 1.06 KB
/
grpc-stream-na-server.cs
File metadata and controls
executable file
·39 lines (32 loc) · 1.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Greeter.proto
service Greeter {
rpc SayHellosClientStream (stream HelloRequest) returns(HelloReply);
}
// SERVER - GreeterService
public override async Task<HelloReply> SayHellosClientStream(IAsyncStreamReader<HelloRequest> requestStream, ServerCallContext context)
{
var counter1 = 0;
var counter2 = 0;
await foreach (var message in requestStream.ReadAllAsync())
{
counter1++;
}
while (await requestStream.MoveNext())
{
HelloRequest item = requestStream.Current;
counter2++;
}
return new HelloReply(){ Message = $"Counter1: {counter1} a Counter2: {counter2}"};
}
// CLIENT
private static async Task ClientStreamingCallExample(Greeter.GreeterClient client)
{
using var call = client.SayHellosClientStream();
for (int i = 0; i < 10; i++)
{
await call.RequestStream.WriteAsync(new HelloRequest() {Name = "Mirek"});
}
await call.RequestStream.CompleteAsync();
var result = await call;
Console.WriteLine("Stream finished with response: " + result.Message);
}