public override async Task ServerStreamingEchoAbort(ServerStreamingEchoRequest request, IServerStreamWriter <ServerStreamingEchoResponse> responseStream, ServerCallContext context) { await responseStream.WriteAsync(new ServerStreamingEchoResponse { Message = request.Message }); throw new RpcException(new Status(StatusCode.Aborted, "Aborted from server side.")); }
public override async Task ServerStreamingEcho(ServerStreamingEchoRequest request, IServerStreamWriter <ServerStreamingEchoResponse> responseStream, ServerCallContext context) { for (var i = 0; i < request.MessageCount; i++) { await responseStream.WriteAsync(new ServerStreamingEchoResponse { Message = request.Message }); await Task.Delay(request.MessageInterval.ToTimeSpan()); } }
public override async Task ServerStreamingEcho(ServerStreamingEchoRequest request, IServerStreamWriter <ServerStreamingEchoResponse> responseStream, ServerCallContext context) { for (var i = 0; i < request.MessageCount; i++) { await responseStream.WriteAsync(new ServerStreamingEchoResponse { Message = request.Message }); try { await Task.Delay(request.MessageInterval.ToTimeSpan(), context.CancellationToken); } catch (OperationCanceledException) { return; } } }