Skip to content

ash4rk/syncope-messenger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Syncope Messenger

image

Описание проекта:

Репозиторий содержит код приложения-мессенджера, написанного на C++. Проект включает как клиентскую, так и серверную реализацию, с топологией "звезда" для клиентских соединений (один сервер, который знает все обо всех клиентах).

image_2023-05-10_22-57-17

Графический интерфейс был создан с помощью 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. Регистрация новых пользователей не реализована.

Диаграммы классов:

tcp_client_uml tcp_server_uml tcp_connection_uml

Необходимые пакеты

Зависимости (загружаются через conan)

  • imgui, glfw, glew - графический интерфейс
  • boost- сетевое взаимодействие
  • spdlog - логирование

About

A simple chat app using boost and imgui. Server and client communicate via their custom communication protocol.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors