C# grpc-серверная потоковая передача RPC. Клиент получил первое сообщение только со вторымC#

Место общения программистов C#
Ответить
Anonymous
 C# grpc-серверная потоковая передача RPC. Клиент получил первое сообщение только со вторым

Сообщение Anonymous »

Я пытаюсь внедрить потоковую передачу RPC на стороне сервера для отправки сообщений с сервера на клиент. < /p>

rpc CheckSystem(CheckSystemRequest) returns (stream CheckSystemResponse) {}
< /code>

код сервера: < /p>

public override Task CheckSystem(CheckSystemRequest request, IServerStreamWriter responseStream, ServerCallContext context) {
return Task.Run(async () => {
for(int i = 1; i

Клиентский код: < /p>

public static async Task TestAsync() {
try {
using (var call = client.CheckSystem(new CheckSystemRequest { Code = "1" })) {
var responseStream = call.ResponseStream;
while (await responseStream.MoveNext()) {
var current = responseStream.Current;
Console.WriteLine($"{DateTime.Now}: Received: Type = {current.Type}");
}
}
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
< /code>

После запуска я вижу, что на стороне сервера сообщение отправляется каждые 10 секунд.
Screenshot #1. < /p>

13.12.2019 **16:31:31**: Sent 1
13.12.2019 **16:31:41**: Sent 2
13.12.2019 16:31:51: Sent 3
13.12.2019 16:32:01: Sent 4
13.12.2019 16:32:11: Sent 5
13.12.2019 16:32:21: Sent 6
13.12.2019 16:32:31: Sent 7
13.12.2019 16:32:41: Sent 8
13.12.2019 16:32:51: Sent 9
13.12.2019 16:33:01: Sent 10
< /code>

Но клиент начинает обрабатывать первое сообщение только после того, как сервер отправляет второе.
Screenshot #2 < /p>

13.12.2019 **16:31:41**: Received: Type = 1
13.12.2019 **16:31:41**: Received: Type = 2
13.12.2019 16:31:51: Received: Type = 3
13.12.2019 16:32:01: Received: Type = 4
13.12.2019 16:32:11: Received: Type = 5
13.12.2019 16:32:21: Received: Type = 6
13.12.2019 16:32:31: Received: Type = 7
13.12.2019 16:32:41: Received: Type = 8
13.12.2019 16:32:51: Received: Type = 9
13.12.2019 16:33:01: Received: Type = 10
< /code>

Что может быть причиной такого поведения? И как это можно исправить?

Подробнее здесь: https://stackoverflow.com/questions/593 ... message-on
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»