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. Все атрибуты разделены одним пробелом и расположены в определённом порядке. Полный список атрибутов для этого кандидата:
Примеры
В этом примере показана функция, которая принимает на вход строку 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 может использовать для установления соединения.
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 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