Работа с сетью в Qt 23

Работа с сетью в Qt

Обзор gRPC и Protocol Buffers: зачем нужны строго типизированные API

Введение Основной цикл статей про сеть строился вокруг JSON как формата обмена данными — гибкого, человекочитаемого, но не дающего никаких гарантий на уровне компилятора о структуре передаваемых данных:…

Работа с сетью в Qt

Описание .proto файлов: сообщения, сервисы, типы данных

Введение С настроенным процессом сборки (статья 322) разберём более подробно сам синтаксис .proto-файлов — доступные типы данных, вложенные структуры, перечисления, и опциональные/повторяющиеся поля, что необходимо для проектирования реалистичного,…

Работа с сетью в Qt

Unary RPC: простой запрос-ответ между Qt-клиентом и gRPC-сервером

Введение С готовым .proto-контрактом (статья 323) и настроенной сборкой (статья 322) переходим к реализации самого простого вида RPC-вызова — unary (один запрос, один ответ), концептуально аналогичного обычному HTTP-запросу…

Работа с сетью в Qt

Server streaming: потоковая передача данных от сервера к Qt-клиенту

Введение Unary RPC из предыдущей статьи подходит для разовых запросов, но для непрерывного потока обновлений (новые показания датчика, поступающие в реальном времени) более естественно подходит server streaming —…

Работа с сетью в Qt

Интеграция асинхронного gRPC-клиента с циклом событий Qt без блокировки UI

Введение Во всех предыдущих статьях цикла gRPC-вызовы выполнялись синхронно, что многократно отмечалось как проблема для приложения с пользовательским интерфейсом. В статье разберём правильную интеграцию — выполнение gRPC-вызовов без…

Работа с сетью в Qt

Обработка ошибок и статусов gRPC: коды, метаданные, deadline

Введение В предыдущих статьях ошибки gRPC обрабатывались минимально — простой проверкой status.ok(). В статье разберём более полную картину обработки ошибок: коды статуса gRPC, метаданные запросов/ответов, и deadline —…

Работа с сетью в Qt

Безопасность gRPC: TLS и аутентификация токенами

Введение Все предыдущие примеры цикла использовали InsecureChannelCredentials()/InsecureServerCredentials() — полностью незащищённое соединение, явно отмеченное как неприемлемое для реального использования. В статье разберём настройку TLS-шифрования транспорта и аутентификации через токены,…

Работа с сетью в Qt

Версионирование .proto API и обратная совместимость

Введение Сервис, развивающийся во времени, неизбежно требует изменения контракта — добавление новых полей, методов, иногда удаление устаревших. В статье разберём правила, позволяющие изменять .proto-файлы без нарушения совместимости со…