...
Отправка события с публикующего клиента
...
Отправка оповещения о статусе аудио/видео в потоке: заглушено/не заглушено
Оповещения об изменении состояния аудио отсылаются следующим образом, при вызове функций Stream.muteAudio() и Stream.unmuteAudio():
...
Code Block | ||||
---|---|---|---|---|
| ||||
var muteVideo = function muteVideo() { if (mediaConnection) { mediaConnection.muteVideo(); sendStreamEvent(STREAM_EVENT_TYPE.VIDEO_MUTED); } }; ... var unmuteVideo = function unmuteVideo() { if (mediaConnection) { mediaConnection.unmuteVideo(); sendStreamEvent(STREAM_EVENT_TYPE.VIDEO_UNMUTED); } }; |
Отправка данных всем подписчикам потока
В сборке WCS 5.2.942 и сборке WebSDK 2.0.168 добавлена возможность отправки любых данных с публикующего клиента в формате JSON всем подписчикам опубликованного потока. Для этого необходимо вызвать метод Stream.sendData(), например
Code Block | ||||
---|---|---|---|---|
| ||||
stream.sendData({"number":33,"string":"hello",boolean:true}); |
Отправка события подписчикам потока с сервера
В сборке WCS 5.2.944 добавлена возможность отправки события всем подписчикам потока с сервера по REST API.
REST-запрос должен быть HTTP/HTTPS POST запросом в таком виде:
- HTTP: http://test.flashphoner.com:8081/rest-api/stream/event/send
- HTTPS: https://test.flashphoner.com:8444/rest-api/stream/event/send
Здесь:
- test.flashphoner.com - адрес WCS-сервера
- 8081 - стандартный REST / HTTP порт WCS-сервера
- 8444 - стандартный HTTPS порт
- rest-api - обязательная часть URL
- /stream/event/send - используемый REST-метод
REST-методы и статусы ответа
REST-метод | Пример тела REST-запроса | Статусы ответа | Описание | |||||||
---|---|---|---|---|---|---|---|---|---|---|
/stream/event/send |
| 200 - OK 404 - Stream not found 500 - Internal server error (bad JSON) | Отправить данные всем подписчикам потока |
Параметры
Имя параметра | Описание | Пример |
---|---|---|
streamName | Имя потока | test |
payload | Данные в формате JSON | {"number":33,"string":"hello","boolean":true} |
Если поток опубликован на сервере, но не имеет ни одного подписчика, запрос вернет 200 OK, но событие никому не будет отослано
Получение события на стороне подписчика
...
Code Block | ||||
---|---|---|---|---|
| ||||
previewStream = session.createStream({ name: streamName, display: remoteVideo, ... }).on(STREAM_EVENT, function(streamEvent) { switch (streamEvent.type) { case STREAM_EVENT_TYPE.AUDIO_MUTED: $("#audioMuted").text(true); break; case STREAM_EVENT_TYPE.AUDIO_UNMUTED: $("#audioMuted").text(false); break; case STREAM_EVENT_TYPE.VIDEO_MUTED: $("#videoMuted").text(true); break; case STREAM_EVENT_TYPE.VIDEO_UNMUTED: $("#videoMuted").text(false); break; } console.log("Received streamEvent ", streamEvent.type); }).play(); |
В сборке WCS 5.2.942 и сборке WebSDK 2.0.168 добавлен тип STREAM_EVENT_TYPE.DATA для получения данных в формате JSON, отосланных функцией stream.sendData()
Code Block | ||||
---|---|---|---|---|
| ||||
session.createStream({ name: streamName, display: remoteVideo ... }).on(STREAM_EVENT, function(streamEvent) { switch (streamEvent.type) { case STREAM_EVENT_TYPE.DATA: console.log(JSON.stringify(streamEvent.payload)); break; } }).play(); |
Обработка события на бэкенде
...