Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Информация о потоках, опубликованных в данный момент на узле, в реальном времени может быть получена по протоколу STOMP поверх при помощи Websocket API.

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

...

Получение метрик потока

Для получения метрик определенного потока в реальном времени необходимо:

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

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

Code Block
themeRDark
CONNECT
accept-version:1.2
host:hostname

^@

3.Подключиться к бэкенд-серверу при помощи Websocket API

2. Подписаться на событие /stream/nodeId/mediaId, отправив сообщение

Code Block
themeRDark
SUBSCRIBE
id:sub-12
destination:/stream/153/010934f0ca77c700-07668e86-11e9-a9508386-59983a9de3c8dbc3d191a79a

^@

Здесь:15

  • 3 - идентификатор узла на бэкенде

...

  • ca77c700-

...

  • 8e86-11e9-

...

  • 8386-

...

  • dbc3d191a79a - идентификатор медиасессии, в которой опубликован или проигрывается поток

...

4. Подписаться на событие /alarm для получения тревог (см ниже)

...

...

SUBSCRIBE
id:sub-0
destination:/alarm

^@

После этого клиент начинает получать STOMP-сообщения вида

Code Block
themeRDark
"MESSAGE\ndestination
destination:/stream/153/010934f0ca77c700-07668e86-11e9-a950-59983a9de3c8\ncontent8386-dbc3d191a79a
content-type:application/json;charset=UTF-8\nsubscription
subscription:sub-1\nmessage2
message-id:oilwo0os-701\ncontent3-50
content-length:1349\n\n1339

[{\"VIDEO_SYNC\":37546371251971560504547907,\"VIDEO_CODEC\":120119,\"VIDEO_NACK\":180,\"VIDEO_PLI\":0,\"VIDEO_RATE\":478104571616,\"VIDEO_WIDTH\":320,\"VIDEO_HEIGHT\":240,\"VIDEO_FPS\":30,\"timestamp\":15456483255061560504547917},{\"AUDIO_SYNC\":37546371252271560504547890,\"AUDIO_CODEC\":111,\"AUDIO_RATE\":3261626664,\"timestamp\":15456483255581560504547923,\"AUDIO_LOST\":210},{\"AUDIO_SYNC\":37546371253471560504548010,\"AUDIO_CODEC\":111,\"AUDIO_RATE\":3296027040,\"timestamp\":15456483256841560504548040,\"AUDIO_LOST\":210},{\"VIDEO_SYNC\":37546371253971560504548099,\"VIDEO_CODEC\":120119,\"VIDEO_NACK\":180,\"VIDEO_PLI\":0,\"VIDEO_RATE\":504632577416,\"VIDEO_WIDTH\":320,\"VIDEO_HEIGHT\":240,\"VIDEO_FPS\":3130,\"timestamp\":15456483257011560504548119},{\"AUDIO_SYNC\":37546371254671560504548130,\"AUDIO_CODEC\":111,\"AUDIO_RATE\":3304826624,\"timestamp\":15456483258051560504548167,\"AUDIO_LOST\":210},{\"VIDEOAUDIO_SYNC\":37546371255971560504548250,\"VIDEOAUDIO_CODEC\":120111,\"VIDEO_NACK\AUDIO_RATE":27976,"timestamp":181560504548282,\"VIDEOAUDIO_PLI\LOST":0},\{"VIDEO_RATE\SYNC":4956241560504548307,\"VIDEO_WIDTH\CODEC":320119,\"VIDEO_HEIGHT\NACK":2400,\"VIDEO_FPS\PLI":300,\"timestamp\VIDEO_RATE":1545648325911}581968,{\"AUDIOVIDEO_SYNC\WIDTH":3754637125587320,\"AUDIOVIDEO_CODEC\HEIGHT":111240,\"AUDIOVIDEO_RATE\FPS":3304831,\"timestamp\":1545648325921,\"AUDIO_LOST\":211560504548318},{\"AUDIO_SYNC\":37546371257071560504548370,\"AUDIO_CODEC\":111,\"AUDIO_RATE\":3240028128,\"timestamp\":15456483260491560504548404,\"AUDIO_LOST\":210},{\"VIDEO_SYNC\":37546371257961560504548499,\"VIDEO_CODEC\":120119,\"VIDEO_NACK\":180,\"VIDEO_PLI\":0,\"VIDEO_RATE\":480224583032,\"VIDEO_WIDTH\":320,\"VIDEO_HEIGHT\":240,\"VIDEO_FPS\":3231,\"timestamp\":15456483261041560504548506},{\"AUDIO_SYNC\":37546371258271560504548490,\"AUDIO_CODEC\":111,\"AUDIO_RATE\":3304829568,\"timestamp\":15456483261591560504548522,\"AUDIO_LOST\":210}]\u0000"

или, при использовании библиотеки STOMP.js

Code Block
languagejs
themeRDark
{
       "command": "MESSAGE",
       "headers": {
               "content-length": "12821339",
               "message-id": "oilwo0os3-92650",
               "subscription": "sub-12",
               "content-type": "application/json;charset=UTF-8",
               "destination": "/stream/153/010934f0ca77c700-07668e86-11e9-a9508386-59983a9de3c8dbc3d191a79a"
       },
       "body": [
        {
                   {
            "VIDEO_SYNC": 1560504547907,
            "VIDEO_CODEC": 119,
            "VIDEO_NACK": 0,
            "VIDEO_PLI": 0,
            "VIDEO_RATE": 571616,
            "VIDEO_WIDTH": 320,
            "VIDEO_HEIGHT": 240,
            "VIDEO_FPS": 30,
            "timestamp": 1560504547917
        },
        {
            "AUDIO_SYNC": 1560504547890,
            "AUDIO_CODEC": 111,
            "AUDIO_RATE": 26664,
            "timestamp": 1560504547923,
            "AUDIO_LOST": 0
        },
        {
            "AUDIO_SYNC": 1560504548010,
            "AUDIO_CODEC": 111,
            "AUDIO_RATE": 27040,
            "timestamp": 1560504548040,
            "AUDIO_LOST": 0
        },
        {
            "VIDEO_SYNC": 1560504548099,
            "VIDEO_CODEC": 119,
            "VIDEO_NACK": 0,
            "VIDEO_PLI": 0,
            "VIDEO_RATE": 577416,
            "VIDEO_WIDTH": 320,
            "VIDEO_HEIGHT": 240,
            "VIDEO_FPS": 30,
            "timestamp": 1560504548119
        },
        {
            "AUDIO_SYNC": 1560504548130,
            "AUDIO_CODEC": 111,
            "AUDIO_RATE": 26624,
            "timestamp": 1560504548167,
            "AUDIO_LOST": 0
        },
        {
            "AUDIO_SYNC": 1560504548250,
            "AUDIO_CODEC": 111,
            "AUDIO_RATE": 27976,
            "timestamp": 1560504548282,
            "AUDIO_LOST": 0
        },
        {
            "VIDEO_SYNC": 37546372991701560504548307,
                       "VIDEO_CODEC": 120119,
                       "VIDEO_NACK": 200,
                       "VIDEO_PLI": 0,
                       "VIDEO_RATE": 617024581968,
                       "VIDEO_WIDTH": 320,
                       "VIDEO_HEIGHT": 240,
                       "VIDEO_FPS": 2431,
                       "timestamp": 1545648499723
       1560504548318
        },
               {
                       "AUDIO_SYNC": 37546372994821560504548370,
                       "AUDIO_CODEC": 111,
                       "AUDIO_RATE": 3060028128,
                       "timestamp": 15456484997991560504548404,
                       "AUDIO_LOST": 23
        },
        ...
   ": 0
        },
        {
            "VIDEO_SYNC": 1560504548499,
            "VIDEO_CODEC": 119,
            "VIDEO_NACK": 0,
            "VIDEO_PLI": 0,
            "VIDEO_RATE": 583032,
            "VIDEO_WIDTH": 320,
            "VIDEO_HEIGHT": 240,
            "VIDEO_FPS": 31,
            "timestamp": 1560504548506
        },
        {
            "AUDIO_SYNC": 1560504548490,
            "AUDIO_CODEC": 111,
            "AUDIO_RATE": 29568,
            "timestamp": 1560504548522,
            "AUDIO_LOST": 0
        }
    ]
}

Сообщения содержат значения метрик, получаемые от узла, на котором опубликован данный поток.

...

Code Block
themeRDark
UNSUBSCRIBE
id:/stream/15/010934f0-0766-11e9-a950-59983a9de3c8sub-2

^@

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

Максимальное количество метрик в одном сообщении настраивается при помощи параметра в файле wcsoam.properties

...