Versions Compared

Key

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

...

Отправка события с публикующего клиента

...

Отправка оповещения о статусе аудио/видео в потоке: заглушено/не заглушено

Оповещения об изменении состояния аудио отсылаются следующим образом, при вызове функций Stream.muteAudio() и Stream.unmuteAudio():

...

Code Block
languagejs
themeRDark
    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
languagejs
themeRDark
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

Code Block
languagejs
themeRDark
{
 "streamName":"test",
 "payload":{
  "number":33,
  "string":"hello",
  "boolean":true
 }
}

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
languagejs
themeRDark
    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
languagejs
themeRDark
    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();

Обработка события на бэкенде

...