Spec-Zone.ru › Web APIs

RTCPeerConnection: метод createAnswer()

Базовая Широко поддерживается

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с января 2020 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Метод createAnswer() интерфейса RTCPeerConnection создает ответ SDP на предложение, полученное от удалённого узла во время обмена предложениями/ответами при установлении соединения WebRTC.

Ответ содержит информацию о любых уже подключённых к сессии медиа, кодеках и поддерживаемых браузером параметрах, а также любых уже собранных кандидатах ICE. Ответ передаётся в возвращённое значение Promise и затем должен быть отправлен источнику предложения для продолжения процесса переговоров.

Синтаксис

createAnswer()
createAnswer(options)

createAnswer(successCallback, failureCallback) // deprecated
createAnswer(successCallback, failureCallback, options) // deprecated

Параметры

options Необязательно

Необязательный объект, предоставляющий параметры, запрошенные для ответа. В настоящее время доступных параметров нет.

Устаревшие параметры

В более старом коде и документации вы можете увидеть версию этого метода с обратными вызовами. Эта версия устарела и её использование настоятельно не рекомендуется. Вы должны обновить любой существующий код, чтобы использовать версию на основе Promise вместо createAnswer(). Параметры старой формы createAnswer() описаны ниже, чтобы помочь в обновлении существующего кода.

successCallback Устарело

Функция обратного вызова, которой будет передан единственный объект RTCSessionDescription, описывающий только что созданный ответ.

failureCallback Устарело

Функция обратного вызова, которой будет передан единственный объект DOMException, объясняющий, почему запрос на создание ответа не удался.

options Необязательно

Необязательный объект, предоставляющий параметры, запрошенные для ответа.

Исключения

NotReadableError

Поставщик идентификации не смог предоставить утверждение об идентификации.

OperationError

По какой-то причине сгенерировать SDP не удалось; это общее исключение для случаев сбоя.

Возвращаемое значение

А Promise, который выполняется с объектом, содержащим те же свойства, что и у объектов RTCSessionDescription:

type

Строка, значение которой "answer".

sdp

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

Примеры

Вот фрагмент кода из статьи Сигнализация и видеозвонки. Этот код взят из обработчика сообщения, отправленного для передачи предложения другому узлу через канал сигнализации.

Примечание: Имейте в виду, что это часть процесса сигнализации, транспортный уровень которой – это деталь реализации, полностью зависящая от вас. В данном случае используется соединение WebSocket для отправки JSON-сообщения с полем type со значением "video-answer" другому узлу, несущего ответ устройству, которое отправило предложение для подключения. Содержание передаваемого в функцию sendToServer() объекта, наряду со всем остальным в обработчике выполнения обещания, полностью зависит от вашей разработки.

pc.createAnswer()
  .then((answer) => pc.setLocalDescription(answer))
  .then(() => {
    // Send the answer to the remote peer through the signaling server.
  })
  .catch(handleGetUserMediaError);

Это запрос к RTCPeerConnection для создания и возврата нового ответа. В обработчике нашего обещания возвращённый ответ устанавливается как описание локального конца соединения путём вызова setLocalDescription().

После успешного выполнения ответ отправляется на сервер сигнализации с использованием выбранного вами протокола.

Для перехвата и обработки ошибок используется Promise.catch().

См. Обработка приглашения в нашем примере чата WebRTC, чтобы просмотреть весь код, из которого взят этот фрагмент; это поможет вам понять процесс сигнализации и работу ответов.

Спецификации

Спецификация
WebRTC: Реальное время взаимодействия в браузерах
# dom-rtcpeerconnection-createanswer

Совместимость с браузерами

Десктоп Мобильные
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
createAnswer 24 15 22 15 11 25 24 14 11 1.5 4.4
returns_promise 51 79 37 43 11 51 37 43 11 6.0 51

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/RTCPeerConnection/createAnswer

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API