Клиент может подключиться к бэкенд-серверу для получения данных и управления мониторингом двумя способами:

Взаимодействие при помощи Websocket API

Для получения информации о потоках на WCS в реальном времени, а также для управления мониторингом, используется Websocket API на базе протокола STOMP

Подключение к бэкенд-серверу по STOMP через Websocket

Для подключения к бэкенд-серверу необходимо:

1. Установить Secure Websocket соединение по адресу https://hostname:8090/ws, где hostname – имя бэкенд-сервера

2. Установить соединение по протоколу STOMP, отправив сообщение

CONNECT
accept-version:1.2
host:hostname

^@

3. Подписаться на очередь /alarms для получения тревог, отправив сообщение

SUBSCRIBE
id:sub-0
destination:/alarm

^@

4. Подписаться на очередь для получения ответов на отправленные запросы /user/service, отправив сообщение

SUBSCRIBE
id:sub-1
destination:/user/service

^@

Отправка запросов и получение ответов

Запросы  отправляются в виде STOMP-сообщений, например

SEND
destination:/app/api/metric/list
content-length:99

{"requestId":"f14853ae-8413-47e7-bb52-76cb4536ad69","realm":"/api/metric/list","payload":{"id":""}}^@

Здесь:

Тело запроса представляет собой JSON объект со следующими параметрами:

Ответ на запрос будет получен асинхронно, в очереди /user/service в виде STOMP-сообщения, например

MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-7
content-length:861

{"requestId":"f14853ae-8413-47e7-bb52-76cb4536ad69","status":200,"reason":"SUCCESS","payload":[{"id":1,"name":"Video height","note":"","enumName":"VIDEO_HEIGHT"},{"id":2,"name":"Video width","note":"","enumName":"VIDEO_WIDTH"},{"id":3,"name":"Video rate","note":"","enumName":"VIDEO_RATE"},{"id":4,"name":"Video sync","note":"","enumName":"VIDEO_SYNC"},{"id":5,"name":"Video FPS","note":"","enumName":"VIDEO_FPS"},{"id":6,"name":"Video NAck","note":"","enumName":"VIDEO_NACK"},{"id":7,"name":"Video PLI","note":"","enumName":"VIDEO_PLI"},{"id":8,"name":"Video codec","note":"","enumName":"VIDEO_CODEC"},{"id":9,"name":"Audio sync","note":"","enumName":"AUDIO_SYNC"},{"id":10,"name":"Audio rate","note":"","enumName":"AUDIO_RATE"},{"id":11,"name":"Audio lost","note":"","enumName":"AUDIO_LOST"},{"id":12,"name":"Audio codec","note":"","enumName":"AUDIO_CODEC"}]}^@

Здесь:

Тело запроса представляет собой JSON объект со следующими параметрами:

Взаимодействие при помощи REST API

Для получения информации о потоках на WCS, а также для управления мониторингом, может быть использовано REST API

REST-запрос должен быть HTTPS POST запросом в таком виде:

Здесь:

Настройка подключения

Настройка порта

HTTPS порт для обработки REST запросов и WSS подключений настраивается при помощи параметра

server.port = 8090

Настройка таймаута Websocket соединения

Таймаут соединения настраивается при помощи параметра в файле wcsoam.properties

stomp_max_timeout=1000