RTCPeerConnection.canTrickleIceCandidates

この記事は翻訳が完了していません。 この記事の翻訳にご協力ください

読み取り専用の RTCPeerConnection プロパティ canTrickleIceCandidates は、リモート・ピアが trickled ICE 候補を受け入れることができるかどうかを示す Boolean を返します。

ICE トリックリングとは、最初のオファーや回答がすでに相手に送られた後も、候補者を送り続けるプロセスのことです。

This property is only set after having called RTCPeerConnection.setRemoteDescription().  Ideally, your signaling protocol provides a way to detect trickling support, so that you don't need to rely on this property. A WebRTC browser will always support trickle ICE. If trickling isn't supported, or you aren't able to tell, you can check for a falsy value for this property and then wait until the value of iceGatheringState changes to "completed" before creating and sending the initial offer. That way, the offer contains all of the candidates.

Syntax

 var canTrickle = RTCPeerConnection.canTrickleIceCandidates;

Value

A Boolean that is true if the remote peer can accept trickled ICE candidates and false if it cannot. If no remote peer has been established, this value is null.

Note: This property's value is determined once the local peer has called RTCPeerConnection.setRemoteDescription(); the provided description is used by the ICE agent to determine whether or not the remote peer supports trickled ICE candidates.

Example

var pc = new RTCPeerConnection();
// The following code might be used to handle an offer from a peer when
// it isn't known whether it supports trickle ICE.
pc.setRemoteDescription(remoteOffer)
  .then(_ => pc.createAnswer())
  .then(answer => pc.setLocalDescription(answer))
  .then(_ =>     
    if (pc.canTrickleIceCandidates) {
      return pc.localDescription;
    }
    return new Promise(r => {
      pc.addEventListener('icegatheringstatechange', e => {
        if (e.target.iceGatheringState === 'complete') {
          r(pc.localDescription);
        }
      });
    });
  })
  .then(answer => sendAnswerToPeer(answer)) // signaling message
  .catch(e => handleError(e));

pc.addEventListener('icecandidate', e => {
  if (pc.canTrickleIceCandidates) {
    sendCandidateToPeer(e.candidate); // signaling message
  }
});

Specifications

Specification Status Comment
WebRTC 1.0: Real-time Communication Between Browsers
RTCPeerConnection.canTrickleIceCandidates の定義
勧告候補 Initial specification.

Browser compatibility

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung Internet
canTrickleIceCandidatesChrome 未対応 なしEdge 未対応 15 — 79Firefox 完全対応 47IE 未対応 なしOpera 未対応 なしSafari ? WebView Android 未対応 なしChrome Android 未対応 なしFirefox Android 完全対応 44Opera Android 未対応 なしSafari iOS ? Samsung Internet Android 完全対応 6.0

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明

See also