Репозиторий содержит код приложения-мессенджера, написанного на C++. Проект включает как клиентскую, так и серверную реализацию, с топологией "звезда" для клиентских соединений (один сервер, который знает все обо всех клиентах).
Графический интерфейс был создан с помощью ImGui, а сетевое взаимодействие - с помощью библиотеки Boost. Сборка осуществляется с помощью CMake + Conan. Используемый протокол соединения - TCP.
Кроме того, был реализован собственный протокол общения клиент-сервер со следующими командами:
- "AUTH" для авторизации
- "SAY" для сообщений от клиентов серверу
- "SHOUT" для сообщений от сервера всем клиентам
- "WHISPER" для сообщений отдельным клиентам.
Документация со сценарием взаимодествия. Тело сообщений кодируется в base64.
Чтобы поставить на Ubuntu 22.04:
apt-get update
apt-get install git build-essential python3-pip cmake pkg-config
apt-get install libboost-all-dev libgl-dev libgl1-mesa-dev libx11-xcb-dev libfontenc-dev libice-dev libsm-dev libxaw7-dev libxcomposite-dev libxcursor-dev libxdamage-dev libxext-dev libxfixes-dev libxi-dev libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm-dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev libxtst-dev libxv-dev libxvmc-dev libxxf86vm-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-xkb-dev libxcb-icccm4-dev libxcb-image0-dev libxcb-keysyms1-dev libxcb-randr0-dev libxcb-shape0-dev libxcb-sync-dev libxcb-xfixes0-dev libxcb-xinerama0-dev libxcb-dri3-dev uuid-dev libxcb-cursor-dev libxcb-util-dev libglu1-mesa-dev
pip install conan==1.57.0
git clone https://github.com/ash4rk/syncope-messenger.git app
cd app
mkdir build
cd build
conan install .. -s build_type=Release -b
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake --build .
cd ..
Сервер:
build/SyncopeServer/SyncopeServer
Клиент:
build/SyncopeClient/SyncopeClient
Валидные данные для авторизации admin:admin. Регистрация новых пользователей не реализована.




