Spec-Zone.ru › Web APIs

RTCPeerConnection: свойство signalingState

Базовая Широко доступная

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

  • Узнать больше
  • См. полную совместимость
  • Отправить отзыв

Чтение только свойство signalingState интерфейса RTCPeerConnection возвращает строковое значение, описывающее состояние процесса сигнализации на локальном конце соединения во время подключения или повторного подключения к другому узлу. См. Сигнализацию на странице жизненного цикла сеанса WebRTC.

Поскольку процесс сигнализации представляет собой конечный автомат, возможность проверки того, что ваш код находится в ожидаемом состоянии при получении сообщений, может помочь избежать неожиданных и предотвратимых сбоев. Например, если вы получаете ответ, а signalingState не находится в состоянии "have-local-offer", вы знаете, что что-то не так, так как вы должны получать ответы только после создания предложения, но до получения ответа и передачи его в RTCPeerConnection.setLocalDescription(). Ваш код будет более надежным, если вы будете следить за несоответствиями состояний и обрабатывать их надлежащим образом.

Это значение также может быть полезным во время отладки.

Кроме того, при изменении значения этого свойства событие signalingstatechange отправляется экземпляру RTCPeerConnection.

Значение

Допустимые строковые значения:

stable

Нет текущего обмена предложениями и ответами. Это может означать, что объект RTCPeerConnection новый, в этом случае и localDescription, и remoteDescription имеют значение null; это также может означать, что согласование завершено и соединение установлено.

have-local-offer

Локальный узел вызвал RTCPeerConnection.setLocalDescription(), передав SDP, представляющий предложение (обычно созданное вызовом RTCPeerConnection.createOffer()), и предложение было успешно применено.

have-remote-offer

Удаленный узел создал предложение и использовал сервер сигнализации для передачи его локальному узлу, который установил это предложение как удалённое описание с помощью вызова RTCPeerConnection.setRemoteDescription().

have-local-pranswer

Предложение, отправленное удаленным узлом, было применено, и был создан ответ (обычно вызовом RTCPeerConnection.createAnswer()) и применён вызовом RTCPeerConnection.setLocalDescription(). Этот предварительный ответ описывает поддерживаемые форматы медиа и т. д., но может не содержать полный набор кандидатов ICE. Дополнительные кандидаты будут доставлены отдельно позже.

have-remote-pranswer

Предварительный ответ был получен и успешно применён в ответ на предложение, ранее отправленное и установленное вызовом setLocalDescription().

closed

RTCPeerConnection был закрыт.

Примеры

const pc = new RTCPeerConnection(configuration);
const state = pc.signalingState;

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

Спецификация
WebRTC: Реальное общение в браузерах
# dom-peerconnection-signaling-state

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
signalingState 26 15 24 15 11 26 24 14 11 1.5 4.4

См. также

  • Жизненный цикл сеанса WebRTC
  • RTCPeerConnection
  • signalingstatechange
  • WebRTC

© 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/signalingState

Spec-Zone.ru

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