Серверная часть отвечает за основной функционал системы – получение, переадресацию и очередизацию сообщений, идентификацию адресатов и т.д. Она содержит в себе ПО, фреймворки и базы данных, необходимые для работы клиентского приложения.
Для обмена данными между клиентским и серверным приложениями команда использовала протокол WebSocket, что является стандартным способом повысить быстродействие системы. WebSocket обеспечивает двунаправленный поток данных между клиентом и сервером и, в отличие от HTTP, не требует от клиента опрашивать сервер каждую секунду.
В рамках данной задачи мы также создали:
- Rest API, отвечающий за дополнительный функционал клиентского приложения: авторизацию пользователей, настройку профиля и др.
- Хранилище данных для сообщений и профилей на основе базы данных MongoDB.
- Специальное файловое хранилище для медиа-файлов.