Spec-Zone.ru › Web APIs

RTCPeerConnection: свойство canTrickleIceCandidates

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

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

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

Свойство canTrickleIceCandidates только для чтения интерфейса RTCPeerConnection возвращает булево значение, которое указывает, может ли удалённый участник принимать кандидаты ICE с подкачкой.

Подкачка ICE — это процесс продолжения отправки кандидатов после того, как начальное предложение или ответ уже были отправлены другому участнику.

Это свойство устанавливается только после вызова RTCPeerConnection.setRemoteDescription(). В идеале ваш протокол сигнализации предоставляет способ определения поддержки подкачки, чтобы вам не приходилось полагаться на это свойство. Веб-браузер WebRTC всегда поддерживает подкачку ICE. Если подкачка не поддерживается или вы не можете определить это, вы можете проверить на ложное значение этого свойства, а затем подождать, пока значение iceGatheringState не изменится на "completed" перед созданием и отправкой начального предложения. Таким образом, предложение будет содержать все кандидаты.

Значение

Булево значение, которое равно true если удалённый участник может принять кандидаты ICE с подкачкой и false если он не может. Если удалённый участник не установлен, это значение равно null.

Примечание: Значение этого свойства определяется после того, как локальный участник вызовет RTCPeerConnection.setRemoteDescription(); предоставленное описание используется агентом ICE для определения того, поддерживает ли удалённый участник кандидаты ICE с подкачкой.

Примеры

const pc = new RTCPeerConnection();

function waitToCompleteIceGathering(pc) {
  return new Promise((resolve) => {
    pc.addEventListener(
      "icegatheringstatechange",
      (e) =>
        e.target.iceGatheringState === "complete" &&
        resolve(pc.localDescription),
    );
  });
}

// The following code might be used to handle an offer from a peer when
// it isn't known whether it supports trickle ICE.
async function newPeer(remoteOffer) {
  await pc.setRemoteDescription(remoteOffer);
  const offer = await pc.createOffer();
  await pc.setLocalDescription(offer);
  if (pc.canTrickleIceCandidates) return pc.localDescription;
  const answer = await waitToCompleteIceGathering(pc);
  sendAnswerToPeer(answer); //To peer via signaling channel
}
// Handle error with try/catch

pc.addEventListener(
  "icecandidate",
  (e) => pc.canTrickleIceCandidates && sendCandidateToPeer(e.candidate),
);

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

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

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

Рабочий стол Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
canTrickleIceCandidates 83 8315–79 47 69 15.4 83 47 59 15.4 13.0 83

См. также

  • WebRTC
  • RTCPeerConnection.addIceCandidate()
  • Срок действия сеанса 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/canTrickleIceCandidates

Spec-Zone.ru

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