Взаимодействие с бэкенд-сервером мониторинга¶
Клиент может подключиться к бэкенд-серверу для получения данных и управления мониторингом двумя способами:
- при помощи Websocket API
- при помощи REST API
Взаимодействие при помощи Websocket API¶
Для получения информации о потоках на WCS в реальном времени, а также для управления мониторингом, используется Websocket API на базе протокола STOMP
Подключение к бэкенд-серверу по STOMP через Websocket¶
Для подключения к бэкенд-серверу необходимо:
-
Установить Secure Websocket соединение по адресу
https://hostname:8090/ws, гдеhostname– имя бэкенд-сервера -
Установить соединение по протоколу STOMP, отправив сообщение
-
Подписаться на очередь
/alarmsдля получения тревог, отправив сообщение
-
Подписаться на очередь для получения ответов на отправленные запросы
/user/service, отправив сообщение
Отправка запросов и получение ответов¶
Запросы отправляются в виде STOMP-сообщений, например
SEND
destination:/app/api/metric/list
content-length:100
{"requestId":"eb2c2807-8c2f-4418-aebe-03622404e4bb","realm":"/api/metric/list","payload":{"id":"3"}}^@
Здесь:
destination- URI запросаcontent-length- длина тела запроса
Тело запроса представляет собой JSON объект со следующими параметрами:
requestId- уникальный идентификатор запросаrealm- используемый методpayload- данные запроса, состав зависит от используемого метода
Ответ на запрос будет получен асинхронно, в очереди /user/service в виде STOMP-сообщения, например
MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-8
content-length:159
{"requestId":"eb2c2807-8c2f-4418-aebe-03622404e4bb","status":200,"reason":"SUCCESS","payload":[{"id":3,"name":"Video rate","note":"","enumName":"VIDEO_RATE"}]}^@
Здесь:
destination- URI очередиcontent-type- тип содержимогоsubscription- идентификатор подпискиmessage-id- идентификатор сообщенияcontent-length- длина тела ответа
Тело запроса представляет собой JSON объект со следующими параметрами:
requestId- уникальный идентификатор запросаstatus- стандартный HTTP статус ответаreason- текстовое представление статусаpayload- данные ответа, состав зависит от запроса и статуса ответа
Взаимодействие при помощи REST API¶
Для получения информации о потоках на WCS, а также для управления мониторингом, может быть использовано REST API
REST-запрос должен быть HTTPS POST запросом в таком виде:
https://wcsoam.flashphoner.com:8090/api/stream/history
Здесь:
wcsoam.flashphoner.com- адрес бэкенд-сервера8090- HTTPS порт/api/stream/history- используемый REST-метод
Настройка подключения¶
Настройка порта¶
HTTPS порт для обработки REST запросов и WSS подключений настраивается при помощи параметра в файле wcsoam.properties
Настройка таймаута Websocket соединения¶
Таймаут соединения настраивается при помощи параметра в файле wcsoam.properties
Настройка CORS¶
Для установки соединения из браузера необходимо разрешить поддержку кроссдоменных запросов при помощи параметра