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

Вызов REST-метода

Рассмотрим работу REST-метода на примере метода /publishStream.

В тестовом веб-приложении Streamer пользователь отправляет видеопоток на WCS сервер

 

При нажатии кнопки Start, веб-страница вызывает функцию Stream.publish(), которая начинает трансляцию.

Пошаговая схема начала публикации и вызова REST-метода publishStream:

  1. На стороне клиента вызывается Stream.publish()
  2. WCS обращается к встроенному бэкенд серверу по адресу http://localhost:8081/apps/EchoApp/publishStream
  3. WCS получает от встроенного бэкенд сервера ответ 200 OK
  4. WCS отправляет клиенту событие StreamStatusEvent с полем status: "PUBLISHING"

 

Окончательным результатом будет отображение статуса PUBLISHING на веб-странице:

При этом вызов метода /publishStream (шаг 2) при разборе HTTP-протокола в Wireshark выглядит так:

POST /EchoApp/publishStream HTTP/1.1
Accept: application/json
Content-Type: application/json;charset=UTF-8
User-Agent: Java/1.8.0_45
Host: localhost:8081
Connection: keep-alive
Content-Length: 3622

{ 
   "nodeId":"H4gfHeULtX6ddGGUWwZxhUNyqZHUFH8j@192.168.1.59",
   "appKey":"defaultApp",
   "sessionId":"/192.168.1.38:52791/192.168.1.59:8443",
   "mediaSessionId":"87c5ff20-fb59-11e6-812c-1b28ccb49323",
   "name":"84cac22c",
   "published":true,
   "hasVideo":true,
   "hasAudio":true,
   "status":"PUBLISHING",
   "record":false,
   "width":0,
   "height":0,
   "bitrate":0,
   "quality":0,
   "mediaProvider":"WebRTC"
}
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Sat, 25 Feb 2017 05:51:11 GMT



{ 
   "nodeId":"H4gfHeULtX6ddGGUWwZxhUNyqZHUFH8j@192.168.1.59",
   "appKey":"defaultApp",
   "sessionId":"/192.168.1.38:52791/192.168.1.59:8443",
   "mediaSessionId":"87c5ff20-fb59-11e6-812c-1b28ccb49323",
   "name":"84cac22c",
   "published":true,
   "hasVideo":true,
   "hasAudio":true,
   "status":"PUBLISHING",
   "record":false,
   "width":0,
   "height":0,
   "bitrate":0,
   "quality":0,
   "mediaProvider":"WebRTC"
}