Spec-Zone.ru › Web APIs

RTCTransportStats

Словарь RTCTransportStats API WebRTC предоставляет информацию о канале связи (RTCDtlsTransport и его основе RTCIceTransport), используемом конкретной парой кандидатов.

Функция BUNDLE — это расширение SDP, которое позволяет договориться об использовании одного канала связи для отправки и получения медиаданных, описанных несколькими медиаописаниями SDP. Если удалённый конец знаком с этой функцией, все MediaStreamTrack и каналы данных объединяются в один канал связи по завершении переговоров. Это верно для современных браузеров, но если подключение осуществляется к более старому концу, не поддерживающему BUNDLE, могут использоваться отдельные каналы связи для разных медиаданных. Политика использования в переговорах настраивается в RTCPeerConnection конструкторе.

Эти статистические данные можно получить, итеративно обрабатывая RTCStatsReport, возвращаемые RTCPeerConnection.getStats(), пока не будет найден отчёт с type типа transport.

Свойства экземпляра

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

Общее количество полученных байтов данных по этому каналу связи (байты данных, не включая заголовки, заполнители или проверки подключенности ICE).

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

Общее количество отправленных байтов данных по этому каналу связи (отправленные байты, не включая заголовки, заполнители или проверки подключенности ICE).

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

Строка, указывающая имя набора шифров, используемого для канала связи DTLS, как определено в столбце «Описание» в разделе TLS Cipher Suites в реестре наборов шифров IANA. Например "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256".

dtlsRole Необязательно Экспериментальная

Роль DTLS связанного RTCPeerConnection. Это может быть:

  • client
  • server
  • unknown (до начала переговоров DTLS).
dtlsState

Строка, указывающая текущее состояние state базового RTCDtlsTransport. Это может быть:

  • new
  • connecting
  • connected
  • closed
  • failed
iceLocalUsernameFragment Необязательно Экспериментальная

Строка, указывающая фрагмент локального имени пользователя, используемый в процедурах проверки сообщений для этого канала связи. Это то же значение, что и локальный RTCIceCandidate.usernameFragment, и изменится, если подключение будет переподключено.

iceRole Необязательно Экспериментальная

Строка, указывающая роль ICE role базового RTCDtlsTransport.iceTransport. Это может быть:

  • controlled
  • controlling
  • unknown
iceState Необязательно Экспериментальная

Строка, указывающая текущее состояние state базового RTCIceTransport. Это может быть:

  • new
  • checking
  • connected
  • completed
  • disconnected
  • failed
  • closed
selectedCandidatePairId Необязательно

Строка, содержащая уникальный идентификатор объекта, который был проанализирован для получения RTCIceCandidatePairStats, связанного с этим каналом связи.

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

Строка, содержащая идентификатор локального сертификата, используемого этим каналом связи. Присутствует только для каналов связи DTLS и после переговоров DTLS.

packetsSent Необязательно Экспериментальная

Общее количество отправленных пакетов по этому каналу связи.

packetsReceived Необязательно Экспериментальная

Общее количество полученных пакетов по этому каналу связи.

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

Строка, содержащая идентификатор или удалённый сертификат, используемый этим каналом связи. Присутствует только для каналов связи DTLS и после переговоров DTLS.

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

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

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

Строка, указывающая описательное имя профиля защиты, используемого для канала связи Secure Real-time Transport Protocol (SRTP), как определено в столбце «Профиль» в реестре профилей защиты DTLS-SRTP IANA и RFC5764.

Например, "AES_CM_128_HMAC_SHA1_80" определяет следующий профиль, где maximum_lifetime — максимальное количество пакетов, которые могут быть защищены одним набором ключей.

SRTP_AES128_CM_HMAC_SHA1_80
 cipher: AES_128_CM
 cipher_key_length: 128
 cipher_salt_length: 112
 maximum_lifetime: 2^31
 auth_function: HMAC-SHA1
 auth_key_length: 160
 auth_tag_length: 80
tlsVersion Необязательно

Строка, содержащая переговорённую версию TLS. Присутствует для каналов связи DTLS и только после переговоров DTLS.

Значение берется из рукопожатия DTLS ServerHello.version, и представлено четырьмя заглавными шестнадцатеричными цифрами, где цифры представляют два байта версии. Однако следует учитывать, что байты могут не отображать непосредственно номера версий. Например, DTLS представляет версию 1.2 как 'FEFD' в численных значениях {254, 253}.

Общие свойства экземпляра

Следующие свойства общие для всех статистических объектов WebRTC.

id

Строка, которая однозначно идентифицирует объект, который отслеживается для создания этого набора статистических данных.

timestamp

Объект DOMHighResTimeStamp, указывающий время, в которое была взята выборка для этого статистического объекта.

type

Строка со значением "transport", указывающая тип статистических данных, содержащихся в объекте.

Примеры

Этот пример демонстрирует функцию, которая возвращает статистику канала связи или null при отсутствии статистических данных.

Функция ожидает результат вызова RTCPeerConnection.getStats(), а затем итеративно обрабатывает возвращаемый RTCStatsReport, чтобы получить только статистику типа "transport". Затем она возвращает статистику или null, используя данные в отчёте.

async function numberOpenConnections (peerConnection) {
  const stats = await peerConnection.getStats();
  let transportStats = null;

  stats.forEach((report) => {
    if (report.type === "transport") {
      transportStats = report;
      break;
    }
  });

return transportStats
}

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

Спецификация
Идентификаторы API статистики WebRTC
# dom-rtcstatstype-transport

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

Настольный Мобильный
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
RTCTransportStats 80 80 No 67 13.1 80 No 57 13.4 13.0 80
bytesReceived 80 80 No 67 13.1 80 No 57 13.4 13.0 80
bytesSent 80 80 No 67 13.1 80 No 57 13.4 13.0 80
dtlsCipher 80 80 No 67 14.1 80 No 57 14.5 13.0 80
dtlsRole 103 103 No 89 No 103 No 71 No 20.0 103
dtlsState 80 80 No 67 14.1 80 No 57 14.5 13.0 80
iceLocalUsernameFragment 103 103 No 89 No 103 No 71 No 20.0 103
iceRole 103 103 No 89 No 103 No 71 No 20.0 103
iceState 103 103 No 89 No 103 No 71 No 20.0 103
id 80 80 No 67 13.1 80 No 57 13.4 13.0 80
localCertificateId 80 80 No 67 13.1 80 No 57 13.4 13.0 80
packetsReceived 86 86 No 72 No 86 No 61 No 14.0 86
packetsSent 86 86 No 72 No 86 No 61 No 14.0 86
remoteCertificateId 80 80 No 67 13.1 80 No 57 13.4 13.0 80
selectedCandidatePairChanges 80 80 No 67 No 80 No 57 No 13.0 80
selectedCandidatePairId 80 80 No 67 13.1 80 No 57 13.4 13.0 80
srtpCipher 80 80 No 67 14.1 80 No 57 14.5 13.0 80
timestamp 80 80 No 67 13.1 80 No 57 13.4 13.0 80
tlsVersion 80 80 No 67 14.1 80 No 57 14.5 13.0 80
type 80 80 No 67 13.1 80 No 57 13.4 13.0 80

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

Spec-Zone.ru

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