Skip to content

Консольное приложение, демонстрирующее возможность добавления промежуточного шлюза (gateway) между клиентом и сервером с помощью gRPC в C++17

Notifications You must be signed in to change notification settings

burakshaevn/cpp-grpc-gateway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gRPC транслятор: Клиент → Шлюз ApiGateway → Сервер

C++ gRPC CMake

Описание

Консольное приложение, которое демонстрирует возможность добавления промежуточного шлюза (gateway) между клиентом и сервером с помощью gRPC в C++17. Клиент отправляет сообщения → шлюз их принимает и пересылает → сервер их получает и выводит в консоль.

Пример

image

Рис. 1 — Запущенный сервер.

Image 2 Рис. 2 — Запущенный шлюз Gateway. Image 2 Рис. 3 — Запущенный клиент.

Структура

cpp-grpc-gateway/
├── client/               ← клиент
│   ├── main.cpp
│   ├── ClientImpl.*
├── gateway/              ← шлюз Gateway
│   ├── main.cpp
│   ├── GatewayImpl.*
├── server/               ← сервер
│   ├── main.cpp
│   ├── ServerImpl.*
├── proto/                ← .proto файл
│   └── chat.proto
├── CMakeLists.txt
└── README.md

Требования, установка и запуск

  • C++17
  • CMake 3.16+
  • gRPC
  1. Установка с помощью vcpkg
.\vcpkg.exe install protobuf protobuf:x64-windows
.\vcpkg.exe install grpc:x64-windows
.\vcpkg integrate install
  1. Сборка проекта Требуется указать свой путь к -DCMAKE_TOOLCHAIN_FILE. Вместо Release можно указать Debug.
mkdir build && cd build
cmake .. -DCMAKE_TOOLCHAIN_FILE:UNINITIALIZED=C:/.dev/vcpkg/scripts/buildsystems/vcpkg.cmake
cmake --build . --config Release
  1. Запуск

    • Вариант 1: Запусть собранный cpp-grpc-gateway.exe. После этого на экране появятся 3 консольных окна: server.exe, gateway.exe, client.exe.

    • Вариант 2: Запустить сначала server.exe, затем gateway.exe, в последнюю очередь client.exe.

После запуска в окне сервера указать адрес и порт шлюза Gateway. После этого в окне клиента указать адрес и порт шлюза Gateway. Можно отдельно запускать новых клиентов через client.exe, их может быть неограниченное количество.

About

Консольное приложение, демонстрирующее возможность добавления промежуточного шлюза (gateway) между клиентом и сервером с помощью gRPC в C++17

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published