Клиент может подключиться к бэкенд-серверу для получения данных и управления мониторингом двумя способами:
Для получения информации о потоках на WCS в реальном времени, а также для управления мониторингом, используется Websocket API на базе протокола STOMP
Для подключения к бэкенд-серверу необходимо:
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 объект со следующими параметрами:
Для получения информации о потоках на WCS, а также для управления мониторингом, может быть использовано REST API
REST-запрос должен быть HTTPS POST запросом в таком виде:
Здесь:
HTTPS порт для обработки REST запросов и WSS подключений настраивается при помощи параметра
server.port = 8090 |
Таймаут соединения настраивается при помощи параметра в файле wcsoam.properties
stomp_max_timeout=1000 |