Перейти к содержанию

Унарный вызов

Клиент инициирует удалённый вызов процедуры с помощью указания имени метода, метаданных и сообщения запроса. Сервер возвращает ответ, содержащий gRPC-статус, сообщение ответа и метаданные.

Диаграмма

sequenceDiagram
participant C as gRPC Client
participant S as gRPC Server
C->>S: Имя метода + сообщение запроса (request message) + метаданные
S->>C: Сообщение ответа (response message) + gRPC-статус + метаданные 

Protobuf

rpc UnaryFunction (InputMessage) returns (OutputMessage) {}

Реализация на сервере

public override async Task<OutputMessage> UnaryFunction(InputMessage request, ServerCallContext context)
{
    var result = new OutputMessage(); // реализация получения ответа
    return result;
}

Использование на клиенте

Простейший асинхронный вариант (возможен и синхронный вариант UnaryFunction())

OutputMessage result = await client.UnaryFunctionAsync(new InputMessage {/* заполняем поля*/});

Другой вариант, если нужно прочитать метаданные:
var сallObj = client.UnaryFunctionAsync(new InputMessage {/* заполняем поля*/});
OutputMessage result = await сallObj.ResponseAsync;
//после этого доступны метаданные

Ссылки

Диаграммы всех видов взаимодействия
примеры Protobuf
Примеры реализаций на сервере
Пример клиента


Последнее обновление : 23 апреля 2023 г.
Дата создания : 23 апреля 2023 г.

Комментарии

Комментарии