Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Текущий »

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

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

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

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

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

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

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

Схема сервисов Elph Chat

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

Протестированные операционные системы:

Astra Linux SE
Версия ОС1.7.31.7.51.7.61.7.71.8
Протестировано+++++
Ubuntu Linux
Версия ОС18.0420.0422.0424.04
Протестировано +++-

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

  • RAM: 8 ГБ (2,5 ГБ требуется для приложения + ОС, остальное — для базы данных);
  • CPU: 4 ядра, 4 потока 2,5 ГГц и выше.

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

- Public Instances: принимают пользовательские подключения;
- Worker Instances: асинхронно обрабатывают очереди сообщений и фоновые задачи.

Метрики производительности системы:

Количество пользователейЦПОЗУСкорость соединенияЗапросы в секунду (rps)Сообщений пользователей в секундуКоличество экземпляров сервера
10004 ядра 2,5 ГГц16 ГБ10 Мбит/с700до 102 Public Instances
20008 ядер 3 ГГц16 ГБ40 Мбит/с1200до 203 Public Instances
300016 ядер 3 ГГц16 ГБ40 Мбит/с1700до 30

6

(5 Public Instances + 1 Worker Instances)

Максимальное проверенное количество websocket-подключений к Chat Server составляет 9500, что соответствует 3000 пользователей.

Сетевые окончания:

  • 3003 — http-порт для доступа к Push Gateway;
  • 3005 — http-порт для доступа к File Service;
  • 3007 — http-порт для доступа к Mini Apps Service;
  • 3011 — http-порт для доступа к 1 экземпляру Chat Server;
  • 3012 — http-порт для доступа ко 2 экземпляру Chat Server;
  • 8080 — http-порт для доступа к Chat Client;
  • 9000 — http-порт для доступа к MinIO;
  • 8282 — http-порт для доступа к Keycloak;
  • 9100 — http-порт для мониторинга состояния Keycloak (Health&Metrics).


Установка и настройка Chat Server подробно описана в следующих разделах:

Ошибка отображения макрокоманды «children»

null

  • Нет меток