Перейти к содержанию

Взаимодействие с бэкенд-сервером мониторинга

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

  • при помощи Websocket API
  • при помощи REST API

Взаимодействие при помощи 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: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

server.port = 8090

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

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

stomp_max_timeout=1000

Настройка CORS

Для установки соединения из браузера необходимо разрешить поддержку кроссдоменных запросов при помощи параметра

access_control_allow_origin=*