Взаимодействие с бэкенд-сервером мониторинга¶
Клиент может подключиться к бэкенд-серверу для получения данных и управления мониторингом двумя способами:
- при помощи 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¶
Для установки соединения из браузера необходимо разрешить поддержку кроссдоменных запросов при помощи параметра