RTCPeerConnection

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.

RTCPeerConnection インターフェイスは、ローカルコンピューターとリモートピアの間の WebRTC 接続を表します。リモートピアに接続したり、接続を維持・監視したり、不要になったら接続を切断したりするためのメソッドを提供します。

EventTarget RTCPeerConnection

コンストラクター

RTCPeerConnection()

ローカルデバイスとリモートピア間の接続を表す、新しく作成された RTCPeerConnection を返します。

静的メソッド

generateCertificate()

X.509 証明書とそれに対応する秘密鍵を作成し、それが生成されると新しい RTCCertificate で解決される Promise を返します。

プロパティ

EventTarget から継承したプロパティもあります。

canTrickleIceCandidates 読取専用

論理値で、リモートピアがトリクル ICE 候補を受け入れることができるかどうかを返します。

connectionState 読取専用

ピア接続の現在の状態を示します。 new, connecting, connected, disconnected, failed, closed のいずれかの文字列を返します。

currentLocalDescription 読取専用

この RTCPeerConnection がリモートピアとの交渉を終了してから、直近で交渉に成功した接続のローカル側を記述した RTCSessionDescription オブジェクトを返します。 また、この記述で表される提案や回答が最初にインスタンス化されて以降、 ICE エージェントによってすでに生成された可能性のある ICE 候補のリストも含まれます。

currentRemoteDescription 読取専用

この RTCPeerConnection がリモートピアとの交渉を終了してから、直近で交渉に成功した接続のリモート側を記述した RTCSessionDescription オブジェクトを返します。 また、この記述で表される提案や回答が最初にインスタンス化されて以降、 ICE エージェントによってすでに生成された可能性のある ICE 候補のリストも含まれます。

iceConnectionState 読取専用

この RTCPeerConnection に関連する ICE エージェントの状態を文字列で返します。 new, checking, connected, completed, failed, disconnected, closed の何れかの値になります。

iceGatheringState 読取専用

接続の ICE 収集状態を表す文字列を返します。これにより、例えば ICE 候補の収集が終了したことを検出することができます。 取りうる値は、 new, gathering, complete の何れかです。

localDescription 読取専用

接続のローカル側のセッションを記述した RTCSessionDescription を返します。 まだ設定されていない場合は、 null を返します。

peerIdentity 読取専用

リモートピアを識別する文字列を含む RTCIdentityAssertion に解決する Promise を返します。 このプロミスが正常に解決されると、結果として得られる ID がターゲットピア ID になり、接続の間、変更されることはありません。

pendingLocalDescription 読取専用

接続のローカル側で保留中の設定変更を記述した RTCSessionDescription オブジェクトを返します。 これは、現在の接続を記述するのではなく、近い将来に存在する可能性のある接続を記述します。

pendingRemoteDescription 読取専用

接続のリモート側で保留中の設定変更を記述した RTCSessionDescription オブジェクトを返します。 これは、現在の接続を記述するのではなく、近い将来に存在する可能性のある接続を説明します。

remoteDescription 読取専用

接続のリモート側の、設定とメディア情報を含むセッションを記述した RTCSessionDescription オブジェクトを返します。 まだ設定されていない場合は、nullを返します。

sctp 読取専用

SCTP データを送受信するトランスポート層の SCTP を記述した RTCSctpTransport オブジェクトを返します。 SCTP が交渉されていない場合、この値は null です。

signalingState 読取専用

他のピアに接続中または再接続中の、ローカル側のシグナリングプロセスの状態を記述した文字列を返します。 値は stable, have-local-offer, have-remote-offer, have-local-pranswer, have-remote-pranswer, closed のうちのいずれかになります。

メソッド

EventTarget から継承したメソッドもあります。

addIceCandidate()

RTCPeerConnection のリモート記述に新しいリモート候補を追加し、リモート側の接続の状態を記述します。

addTrack()

新しい MediaStreamTrack を、相手側に送信されるトラックのセットに追加します。

addTransceiver()

新しい RTCRtpTransceiver を作成し、接続に関連付けられたトランシーバーのセットに追加します。 トランシーバーはそれぞれ、 RTCRtpSenderRTCRtpReceiver が関連付けられた両方向のストリームを表します。

close()

現在のピア接続を終了します。

createAnswer()

WebRTC 接続の提案/回答交渉中にリモートピアから受け取った提案に対する SDP 回答の作成を開始します。 回答には、ブラウザーが対応しているコーデック、オプション、セッションにすでに接続されているメディア、すでに収集されている ICE 候補に関する情報が含まれます。

createDataChannel()

リモートピアとリンクした新しいチャネルの作成を開始し、その上であらゆる種類のデータを転送することができます。 これは、画像、ファイル転送、テキストチャット、ゲームアップデートパケットなどのバックチャネルコンテンツに便利です。

createOffer()

リモートピアとの新しい WebRTC 接続を開始するために、SDP 提案 の作成を開始する。 SDP提案には、WebRTCセッションにすでにアタッチされているMediaStreamTrack オブジェクト、コーデック、ブラウザーが対応しているオプションに関する情報、および ICE エージェントがすでに収集している候補が含まれており、シグナルチャネルを介して、接続を要求または既存の接続の構成を更新するために相手候補 に送信されます。

getConfiguration()

接続の現在の構成を示すオブジェクトを返す。

getIdentityAssertion()

ID アサーションの収集を開始し、文字列としてエンコードされた ID アサーションに解決する Promise を返します。 これは signalingStateclosed でない場合のみ効果を持ちます。

getReceivers()

RTCRtpReceiver オブジェクトの配列を返します。各オブジェクトは 1 つの RTP レシーバーを表します。

getSenders()

各オブジェクトは、 1 つのトラックのデータ送信に責任を負う RTP 送信者を表す RTCRtpSender オブジェクトの配列を返します。

getStats()

接続全体または指定された MediaStreamTrack に関する統計データを解決する Promise を返します。

getTransceivers()

接続上のデータの送受信に使用されているすべての RTCRtpTransceiver オブジェクトのリストを返します。

removeTrack()

getSenders() によって報告される送信者リストから対応する RTCRtpSender を実際に削除せずに、指定したトラックからのメディア送信を停止するよう接続のローカル側に指示します。 トラックがすでに停止している場合、または接続の送信者リストにない場合、このメソッドは何の効果も持ちません。

restartIce()

ICE 候補の収集を、接続の両端でやり直すよう簡単に要求できるようにします。 これにより、 ICE の再起動を発生させるために、呼び出し側または受信側のどちらかが同じメソッドを使用することができ、プロセスが簡素化されます。

setConfiguration()

指定されたオブジェクトに含まれる値に基づいて、接続の現在の構成を設定します。 これにより、接続が使用する ICE サーバーや、使用するトランスポートポリシーを変更することができます。

setIdentityProvider()

Identity Provider (IdP) を引数で指定された 3 つの要素に設定します。 その名前、そのプロバイダーとの通信に使用するプロトコル、そしてユーザー名です。 プロトコルおよびユーザー名は省略可能です。

setLocalDescription()

接続に関連するローカルの説明を変更します。 この説明は、メディア形式を含む、接続のローカル側のプロパティを指定します。 これは Promise を返し、非同期に説明が変更されると履行されます。

setRemoteDescription()

指定されたセッション記述をリモートピアの現在の提案または回答として設定します。 説明は、メディア形式を含む、接続のリモート側のプロパティを指定します。 これは Promise を返し、非同期に説明が変更されると履行されます。

廃止されたメソッド

addStream() 非推奨;

音声または映像のローカルソースとして MediaStream を追加します。 この古いメソッドを使用する代わりに、リモートピアに送信したいトラックごとに addTrack() を 1 回使用する必要があります。

createDTMFSender() 非推奨;

特定の MediaStreamTrack と関連付けられた新たな RTCDTMFSender を生成します。これにより、その接続において DTMF 音(電話のトーン信号、プッシュ音)を送れるようになります。

getStreamById() 非推奨;

接続のローカルまたはリモート側に関連する、指定された ID の MediaStream を返します。 このプロパティは getSenders()getReceivers() メソッドに置き換えられました。

removeStream() 非推奨;

音声または映像のローカルソースとして MediaStream を削除します。 このメソッドは廃止されたため、代わりに removeTrack() を使用してください。

イベント

これらのイベントを待ち受けするには、 addEventListener() を使用するか、イベントリスナーをこのインターフェイスの on<em>イベント名</em> プロパティに代入するかしてください。

connectionstatechange

RTCPeerConnection の全体的な接続状態が変化したときに送信されます。

datachannel

リモートピアが接続に RTCDataChannel を追加したときに送信されます。

icecandidate

指定された候補をリモートピアに送信することを要求するために送信されます。

icecandidateerror

ICE 候補の収集中にエラーが発生した場合に接続先に送信されます。イベントには、エラーの内容が記述さ れます。

iceconnectionstatechange

切断時など、 ICE の接続状態が変化したときに送信されます。

icegatheringstatechange

ICE レイヤーの収集状態 (iceGatheringState が変化したときに送信されます。 これは、 ICE 交渉がまだ始まっていないか (new)、候補の収集を始めたか (gathering)、終了したか (complete) を示します。

negotiationneeded

ICE 接続の交渉または再交渉を行う必要があるときに送信されます。 これは、最初に接続を開くときにも、変化するネットワーク条件に適応する必要があるときにも発生します。 受信側は、オファーを作成し、相手ピアに送信することで応答する必要があります。

signalingstatechange

この接続の ICE 信号の状態が変化したときに送信されます。

track

接続を構成する RTCRtpReceiver インスタンスのいずれかに新しいトラックが追加された後に送信されます。

廃止されたイベント

addstream 非推奨;

新しい MediaStream が接続に追加されたときに送信されます。 この古いイベントを待ち受けるのではなく、 track イベントを待ち受けるために使用する必要があります。 接続に追加された MediaStreamTrack ごとに 1 つ送信されます。

removestream 非推奨;

domxref("MediaStream")}} が接続から削除されたときに送信されます。 この古いイベントを待ち受けるのではなく、それぞれのストリームの removetrack イベントを待ち受けるために使用する必要があります。

仕様書

Specification
WebRTC: Real-Time Communication in Browsers
# interface-definition

ブラウザーの互換性

BCD tables only load in the browser

関連情報