Разработка корпоративного мессенджера

Сегодня мессенджеры и различные приложения для голосовых и видеозвонков используют как для частных бесед, так и для общения внутри организаций. Однако не все готовые решения на рынке могут удовлетворить потребности крупных предприятий. Часть мессенджеров ушла из России, а у оставшихся не хватает мощностей, чтобы поддерживать значительное количество активных пользователей или обеспечивать требуемый уровень надежности. Отсюда и возросший спрос на разработку аналогичных решений.

Запрос

В КЕДР Solutions обратилась крупная компания с просьбой разработать корпоративный мессенджер со стандартным для подобных решений функционалом, способный поддерживать не менее 10 000 активных пользователей. Особое внимание клиент просил уделить быстродействию системы.

Решение

Разработка клиентского приложения

С помощью инструментов фреймворка Qt мы создали кроссплатформенное клиентское приложение на языке C++, совместимое с операционными системами Windows и macOS. Приложение отвечает за непосредственное взаимодействие с пользователем, передачу сообщений на сервер и прием сообщений с него.
Скриншот главного экрана клиентского приложения корпоративного чата
В левой части экрана выведены каналы, а также личные и групповые чаты. Беседы можно закреплять в списке, чтобы их положение не смещалось, а также отмечать как избранные. В верхней части экрана можно переключаться между списком избранных, остальных и всех чатов и каналов. Панель слева позволяет проверять оповещения, осуществлять поиск, добавлять контакты, создавать групповые чаты, каналы и сортировать иконки.

В верхней части экрана чата отображаются фотография и имя контакта (собеседника, группового чата или канала). Там же можно видеть список участников.
Скриншот меню настройки профиля в корпоративном чате.
Кликнув по своей иконке, пользователь может перейти в меню профиля, которое позволяет настроить статус, посмотреть свой ID в мессенджере, указать адрес электронной почты, дату рождения, язык, произвести настройки и отправить собственный контакт собеседнику.
Скриншот профиля контакта в корпоративном чате.
Кликнув по фотографии собеседника, можно увидеть его профиль. Там отображаются его ID, адрес электронной почты и дата рождения. В этом же меню можно просмотреть медиа-файлы, которыми обменивались пользователь и данный контакт, переслать контакт, заблокировать или удалить его.

Разработка серверного приложения

Серверная часть отвечает за основной функционал системы – получение, переадресацию и очередизацию сообщений, идентификацию адресатов и т.д. Она содержит в себе ПО, фреймворки и базы данных, необходимые для работы клиентского приложения.

Для обмена данными между клиентским и серверным приложениями команда использовала протокол WebSocket, что является стандартным способом повысить быстродействие системы. WebSocket обеспечивает двунаправленный поток данных между клиентом и сервером и, в отличие от HTTP, не требует от клиента опрашивать сервер каждую секунду.

В рамках данной задачи мы также создали:

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

Итоги

Разработанный командой КЕДР Solutions корпоративный мессенджер способен поддерживать более 10 000 активных пользователей и обрабатывать до 200 сообщений в секунду. Мы создали клиентское и серверное приложения, Rest API, отвечающий за авторизацию пользователей, настройку профиля и другие функции, а также хранилище данных для сообщений и профилей на основе базы данных MongoDB.

Функционал решения включает в себя следующие особенности:

  • Регистрацию и авторизацию пользователей;
  • Обмен мгновенными сообщениями;
  • Голосовые и видеозвонки;
  • Групповые чаты;
  • Сквозное шифрование;
  • Обмен медиа-файлами;
  • Поиск по контактам, сообщениям и вложениям и др.
Активных пользователей:
10,000
Сообщений в сек.:
200