Как изящно прекратить чтение потока gRPC и отключиться на клиенте C # - PullRequest
0 голосов
/ 20 сентября 2019

У меня есть служба gRPC, определенная как показано ниже

service ConsumerService 
{
    stream Message Consume(SubscriptionRequest);
}

Клиент выглядит следующим образом:

var consumer = new ConsumerService.ConsumerServiceClient(<channel>);
AsyncServerStreamingCall<Message> proxy = consumer.ConsumeAsync(subRequest));

while (!gracefulShutdown)
    await proxy.ResponseStream.MoveNext(cts.Token);

// todo: tell the server that client is not going to read responses anymore..
await proxy.ResponseStream.CompleteAsync(); // I would like to have method like this

Мне нужно, чтобы клиент изящно прекратил читать ответы, когда gracefulShutdown установлен в значение true.Как мне это сделать?

Если я просто прекращаю чтение и закрываю канал, сервер считает, что это как прерывание.

...