RTCIceCandidate: свойство relatedPort
Чтение только свойство RTCIceCandidate интерфейса relatedPort показывает номер порта рефлексивных или реле-кандидатов.
Если кандидат является кандидатом хоста (то есть его address фактически является реальным IP-адресом удаленного участника), relatedPort равно null.
Значение поля relatedPort устанавливается из объекта candidateInfo options, переданного в конструктор RTCIceCandidate(). Вы не можете указать значение relatedPort напрямую в объекте options, но его значение автоматически извлекается из строки объекта candidate a-строки, если она отформатирована должным образом (поле rel-port).
Связанный адрес (relatedAddress) и порт вообще не используются самим ICE; они предоставляются только для анализа и диагностики, и их включение может быть заблокировано системами безопасности, поэтому не полагайтесь на то, что они будут иметь значения, отличные от null.
Значение
Беззнаковое 16-битное значение, содержащее номер порта кандидата, если таковой имеется. Для рефлексивных кандидатов как со стороны клиента, так и со стороны сервера связанный адрес и порт описывают базу для этого кандидата. Для реле-кандидатов связанный адрес и порт предоставляют отображённый адрес, выбранный сервером TURN.
Для кандидатов хоста relatedPort равно null, что означает, что поле не включено в a-строку кандидата.
Примечания по использованию
Связанный адрес и порт не используются самим ICE и присутствуют только для целей диагностики и качества обслуживания. Они могут быть фактически опущены по соображениям безопасности, но если они присутствуют, могут быть полезным инструментом при отладке. См. пример Пример.
Вот строка атрибута SDP (a-строка), описывающая кандидата ICE, обнаруженного сервером STUN:
a=candidate:4234997325 1 udp 2043278322 192.0.2.172 6502 typ srflx raddr 198.51.100.45 rport 32768 generation 0
Удаленный порт, relatedPort, — это число, непосредственно следующее за меткой "rport" в a-строке, или 32768.
Примеры
В этом примере проверяется type кандидата, а затем выводятся отладочные данные на основе типа кандидата, включая тип кандидата, адрес (ip и port), и связанный адрес (relatedAddress и relatedPort).
const ip = candidate.address;
const port = candidate.port;
const relIP = candidate.relatedAddress;
const relPort = candidate.relatedPort;
if (relIP && relPort) {
console.log(
`Candidate type '${type}' — contact address: ${ip} ${port}, related address: ${relIP} ${relPort}`,
);
} else {
console.log(`Host candidate address is ${ip} ${port}`);
}
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
relatedPort |
74 | 79 | 126 | 62 | 14.1 | 74 | 126 | 53 | 14.5 | 11.0 | 74 |
См. также
© 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/relatedPort