<< Click to Display Table of Contents >> Архитектура системы > Основные сервисы Сервис клиентских подключений |
Сервис предназначен для создания и обслуживания клиентских подключений к серверу. По этим соединениям сервис отправляет сообщения о серверных событиях от веб-сервера к веб-клиенту. Например, сообщения о появлении входящего задания, уведомления или о настройке замещения. Кроме того, сервис регулярно сообщает веб-серверу о подключенных клиентах, чтобы сервер продлевал время жизни клиентских сессий.
Сервис состоит из двух компонентов:
•Centrifugo – стороннее приложение, которое создает и обслуживает клиентские подключения. Пользователи подключаются к Centrifugo по протоколу websocket, используя библиотеку SockJS. Если браузер не поддерживает websocket, то подключение выполняется по протоколу xhr-polling;
•ClientsConnectionService – микросервис Directum RX, который обеспечивает взаимодействие веб-сервера с Centrifugo. Сервис общается с приложением Centrifugo по протоколу HTTP, а с веб-сервером с помощью сообщений RabbitMQ.
Схема работы сервиса клиентских подключений:
1.При входе пользователя в веб-клиент на веб-сервере создается клиентская сессия. Затем веб-клиент отправляет запрос приложению Centrifugo на подключение пользователя.
2.Centrifugo пересылает запрос сервису ClientsConnectionService на проверку, что веб-клиент действительно является приложением Directum RX, и что клиентская сессия еще активна. ClientsConnectionService отправляет ответ Centrifugo.
3.Если проверка клиентской сессии прошла успешно, Centrifugo создает приватный канал для пользователя (clientId – уникальный идентификатор клиентской сессии) и устанавливает постоянное подключение между веб-клиентом и Centrifugo.
4.Периодически ClientsConnectionService запрашивает у Centrifugo список подключенных клиентов. По умолчанию запросы отправляются раз в минуту.
5.Полученный список сервис отправляет через RabbitMQ на веб-сервер. Таким образом продляется время жизни активных клиентских сессий на сервере.
6.В дальнейшем веб-сервер может отправлять сообщения о некоторых серверных событиях на веб-клиент. Сообщения отправляются через RabbitMQ. Например, это сообщения о появлении новых заданий и уведомлений, о снятии блокировки с документа, о начале и завершении выполнения длительной операции.
Установка и настройка сервиса
По умолчанию сервис ClientsConnectionService и приложение Centrifugo устанавливаются на компьютер вместе с веб-сервером.
В отказоустойчивой архитектуре сервис клиентских подключений и Centrifugo устанавливаются на каждом сервере вместе со всеми сервисами Directum RX.
Настройки сервиса задает администратор. Например, в настройках можно задать новый адрес приложения Centrifugo.
© Компания Directum, 2024 |