Spec-Zone.ru › Web APIs

RTCIceCandidate: свойство candidate

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

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

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

Только для чтения свойство candidate интерфейса RTCIceCandidate возвращает строку, подробно описывающую кандидата. Большинство других свойств RTCIceCandidate фактически извлекаются из этой строки.

Это свойство можно настроить, используя свойство candidate объекта, переданного в конструктор RTCIceCandidate() или RTCPeerConnection.addIceCandidate().

Значение

Строка, описывающая свойства кандидата, взятая непосредственно из атрибута SDP "candidate". Строка кандидата указывает информацию о сетевом подключении для кандидата. Если candidate является пустой строкой (""), достигнут конец списка кандидатов; этот кандидат известен как маркер «конец-кандидатов».

Синтаксис строки кандидата описан в RFC 5245, раздел 15.1. Для а-строки (строки атрибута), которая выглядит так:

a=candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host

соответствующее значение строки candidate будет: "candidate:4234997325 1 udp 2043278322 192.0.2.172 44323 typ host".

Веб-браузер всегда отдаёт предпочтение кандидатам с наивысшим значением priority при прочих равных условиях. В приведённом примере приоритет равен 2043278322. Все атрибуты разделены одним пробелом и расположены в определённом порядке. Полный список атрибутов для этого кандидата:

  • foundation = 4234997325
  • component = "rtp" (число 1 кодируется в этой строке; 2 становится "rtcp")
  • protocol = "udp"
  • priority = 2043278322
  • ip = "192.0.2.172"
  • port = 44323
  • type = "host"

Примеры

В этом примере показана функция, которая принимает на вход строку SDP, содержащую кандидата ICE, полученного от удалённого узла во время процесса сигнализации.

function handleNewIceCandidate(candidateSDP) {
  const candidateObj = new RTCIceCandidate(candidateSDP);

  myPeerConnection.addIceCandidate(candidateObj).catch({
    /* handle the error thrown by addIceCandidate() */
  });
}

Функция handleNewIceCandidate() в данном случае передаёт полученный текст SDP кандидата в RTCIceCandidate() для получения объекта RTCIceCandidate в ответ, который представляет кандидата.

Новый кандидат затем передаётся в RTCPeerConnection.addIceCandidate() для добавления кандидата в список кандидатов, которые WebRTC может использовать для установления соединения.

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

Спецификация
WebRTC: Реальное время связи в браузерах
# dom-rtcicecandidate-candidate

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
candidate 23 15
22До Firefox 126, свойство не было только для чтения.
15 11 25
24До Firefox 126, свойство не было только для чтения.
14 11 1.5 4.4

© 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/RTCIceCandidate/candidate

Spec-Zone.ru

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