public async Task <StreamingInputCallResponse> StreamingInputCall(ServerCallContext context, IAsyncStreamReader <StreamingInputCallRequest> requestStream) { int sum = 0; await requestStream.ForEach(async request => { sum += request.Payload.Body.Length; }); return(StreamingInputCallResponse.CreateBuilder().SetAggregatedPayloadSize(sum).Build()); }
public IObserver <StreamingInputCallRequest> StreamingInputCall(IObserver <StreamingInputCallResponse> responseObserver) { var recorder = new RecordingObserver <StreamingInputCallRequest>(); Task.Run(() => { int sum = 0; foreach (var req in recorder.ToList().Result) { sum += req.Payload.Body.Length; } var response = StreamingInputCallResponse.CreateBuilder() .SetAggregatedPayloadSize(sum).Build(); responseObserver.OnNext(response); responseObserver.OnCompleted(); }); return(recorder); }