Для работы сообщений в Elph на сервере должен быть развёрнут ecss-chat-server.

Chat Server предоставляет удобное и безопасное решение для обмена сообщениями в режиме реального времени. Он обладает широким функционалом, позволяющим пользователям войти в систему, создавать и управлять комнатами, отправлять сообщения и многое другое.

Функционал Chat Server:

  • Пользователи могут создавать комнаты для группового общения или присоединяться к уже существующим комнатам. Chat Server обеспечивает возможность управления комнатами, включая изменение названия и аватара, добавление и удаление пользователей, назначение ролей, таких как: администратор и обычный пользователь.
  • Пользователи могут отправлять текстовые и голосовые сообщения, изображения, видео и файлы в комнатах чата. Chat Server принимает эти сообщения и передает их всем пользователям, находящимся в той же комнате.
  • Chat Server сохраняет историю всех сообщений, отправленных в каждой комнате. Это позволяет пользователям просматривать предыдущие сообщения, которые они могут пропустить или не видеть из-за отсутствия в чате.
  • Предусмотрена возможность удаления сообщений для всех пользователей и чат-комнат для привилегированных пользователей.
  • Chat Server обеспечивает доставку push-уведомлений на устройства с iOS и Android, что позволяет информировать пользователя о новых сообщениях и изменениях в чатах.
  • Реализованы ответы на сообщения и возможность переслать сообщения в другой чат.
  • Реакции на сообщения.
  • Закрепления чатов и сообщений. Пользователь может закрепить важные сообщения сверху чата для быстрого перехода к ним.
  • Папки для хранения чатов. Комнаты можно группировать по папкам для лучшей навигации между чатами.
  • Чат с поддержкой всегда поможет при возникновении проблем. Также в этом чате можно отправить логи для подробного изучения возникшей проблемы и последующего ее решения.


Для работы уведомлений на устройствах Android и iOS необходим доступ к Google Services и Apple Push Notifications. При развертывании Chat Server в закрытом контуре, без обеспечения доступа к приведенным выше сервисам, уведомления Chat Server приходить не будут.

На рисунке ниже представлена упрощённая схема интеграции Elph и ECSS-10.

Упрощённая схема интеграции Elph и ECSS-10

Системные требования

Протестированные ОС и платформы:

  • Linux Ubuntu Server 18, 20, 22;
  • Astra Linux 1.7.0.

Аппаратные требования:

  • ОЗУ: 4 ГБ;
  • ПЗУ: 10 ГБ (2,5 ГБ будет занято приложением + ОС, остальное для базы данных);
  • CPU: 3 ядра 2.5 ГГц и выше (количество ядер имеет низкое значение).

При таких характеристиках обеспечивается нагрузочная способность около 1000 пользователей (c учётом того, что каждый пользователь даёт двойную нагрузку на сервер, так как пользуется чатом одновременно с мобильного и настольного приложений).

Системные требования для разного количества пользователей:

Количество пользователейЦПОЗУСеть
10003 ядра 2.5 ГГц4 ГБ10 Мбит\с
20006 ядер 3 ГГц8 ГБ20 Мбит\с
400012 ядер  3ГГц16 ГБ40 Мбит\с


В нагрузочном тесте Chat Server достиг скорости до 50 сообщений/с (транзакций/с):

450 пользователей отправили 450 сообщений/с, все сообщения были доставлены (вставали в очередь), поэтому стоит вопрос расчета максимальной пропускной способности чата на подобном (описанном выше) стенде.

Если считать по статистике ВК (48 млн активных авторов, 15 млрд сообщений в сутки) — 15000000000 / 48000000 / 8 / 60 / 60 = 0.01085069444 сообщений/с  (8, а не 24 в данном случае, так как это корпоративный чат, и за основу взят 8-часовой рабочий день, поэтому берётся дневная скорость ВК для расчета 8-часовой скорости Chat Server ECSS).

0.01085069444 * 2 = 0.00723379628 (заложен двухкратный рост)

50 / 0.00723379628 = 4608 активно пишущих в чат (со скоростью 0.01085069444 сообщений/с) человек, но, так как тест не учитывал Websocket подключения, по которым передаются объемные данные, то выходные данные мы делим примерно на 2 и получаем около 2000 пользователей.

НО это без учета того, сколько пользователей может быть просто подключены к чату по WS. Если все 2000 пользователей одновременно подключатся к одной комнате (например, общий чат) и небольшая их часть будет писать сообщения, то могут быть некоторые проблемы с производительностью.

Учитывая, что Elph Desktop держит постоянное подключение к Chat Server, плюс у пользователя может быть мобильное устройство с Elph iOS/Adnroid (то есть один пользователь может генерировать двойную нагрузку), то опять условно делим на 2 с учётом WS и больших комнат.

На «плавающих» Elph iOS/Adnroid условно отдаём 15% времени онлайна (то есть когда 1 пользователь считается за 2) 1152 * 0.15 = 172.

Итого: предположительно 980 человек смогут без проблем с производительностью пользоваться чатом весь рабочий день.

  • Нет меток