RTCDataChannel インターフェイスは、2 つのピア間で双方向に任意のデータを転送するためのネットワークチャンネルを表現します。すべてのデータチャンネルは RTCPeerConnection に関連付けられており、それぞれのぴあコネクションは理論上、最大 65,534 個のデータチャンネルを持つことができます (実際の上限はブラウザーごとに異なります)。

データチャンネルを作成してリモートのピアに参加するかを問い合わせるには、RTCPeerConnectioncreateDataChannel() メソッドを呼び出します。データ交換に招かれているピアは datachannel イベント (RTCDataChannelEvent 型) を受け取って、コネクションにデータチャンネルが追加されたことを知ります。

プロパティ

RTCDataChannel.label 読取専用
データチャネルを示す名前を含むDOMStringを返します。この値に関して固有でなければならない制約はありません。
RTCDataChannel.ordered 読取専用
メッセージの配達順序を保証するかしないかを示すBooleanを返します。
RTCDataChannel.protocol 読取専用
利用している副プロトコルの名前を含むDOMStringを返します。ない場合は ""を返します。
RTCDataChannel.id 読取専用
このチャンネルの固有IDを示す unsigned short を返します。この値は、RTCDataChannelオブジェクトの作成時に設定されます。
RTCDataChannel.readyState 読取専用
下位のデータコネクションの状態を表現する列挙型の RTCDataChannelState を返します。次のいずれかの値をとります。
  • "connecting": 下位のコネクションがまだ確立されておらず有効でないことを示します。RTCPeerConnection.createDataChannel()によって生成されたデータチャネルの初期状態です。
  • "open": 下位のコネクションが確立され動作中であることを示します。RTCDataChannelEvent によって、データチャンネルがディスパッチされた時の初期状態です。
  • "closing": 下位のコネクションがシャットダウン処理中であることを示します。新しい送信タスクは受け付けませんが、送信または受信中のキャッシュされたメッセージは処理されます。
  • "closed": 下位のコネクションがシャットダウンされたこと(または、確立できなかったこと)を示します。
RTCDataChannel.bufferedAmount 読取専用
送信キューのバイト量を含むunsigned longを返します。これは、RTCDataChannel.send()を介して送信要求され、まだ送信されていないデータの量です。チャンネルが閉じている場合、バッファリングは継続することに注意してください。
RTCDataChannel.binaryType
コネクションによって送信されたバイナリデータの種類を示すDOMStringです。この値は、Blobが利用されている場合は"blob"、ArrayBufferが利用されている場合は"arraybuffer"にすべきです。初期状態では、"blob"が設定されます。
RTCDataChannel.maxPacketLifeType 読取専用
無信頼性モードでのメッセージングでの、ミリ秒単位のウィンドウ長を示すunsigned shortです。
RTCDataChannel.maxRetransmits 読取専用
無信頼性モードでのメッセージングでの、最大再送信回数を示すunsigned shortです。
RTCDataChannel.negotiated 読取専用
アプリケーションによってチャンネルがネゴシエーションされたかされていなかを示すBooleanです。
DataChannel.reliable 読取専用
コネクションはメッセージを無信頼性モードで送信可能かを示すBooleanです。
DataChannel.stream 読取専用
旧式です。RTCDataChannel.idと同じ意味を持ちます。

イベントハンドラ

RTCDataChannel.onopen
open イベントを受信した時に呼ばれるイベントハンドラです。このイベントは、データコネクションのための下位のデータトランスポートが確立された時に送信されます。
RTCDataChannel.onmessage
message イベントを受信した時に呼ばれるイベントハンドラです。このイベントは、データコネクション上でメッセージを受信した時に送信されます。
RTCDataChannel.onclose
close イベントを受信した時に呼ばれるイベントハンドラです。このイベントは、下位のデータトランスポートが閉じた時に送信されます。
RTCDataChannel.onerror
error イベントを受信した時に呼ばれるイベントハンドラです。このイベントは、エラーに遭遇した時に送信されます。

メソッド

RTCDataChannel.close()
チャンネルを閉じます。突然でない方法でチャンネルを閉じます。チャンネルのstate は "closing"に設定され、送信されていないメッセージは送信されてから、チャンネルを閉じます。
RTCDataChannel.send()
チャンネルのパラメータに従いデータを送信します。送信可能なデータの型は DOMString または BlobArrayBufferArrayBufferView です。

var pc = new RTCPeerConnection();
var dc = pc.createDataChannel("my channel");

dc.onmessage = function (event) {
  console.log("received: " + event.data);
};

dc.onopen = function () {
  console.log("datachannel open");
};

dc.onclose = function () {
  console.log("datachannel close");
};

仕様

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

ブラウザー互換性

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応 あり ?

24

22 — 601

なし あり ?
binaryType あり ?22 なし あり ?
bufferedAmount56 ? なし なし43 なし
bufferedAmountLowThreshold56 ? なし なし43 なし
close56 ? なし なし43 なし
id56 ? なし なし43 なし
label56 ? なし なし43 なし
maxPacketLifeTime56 ? なし なし43 なし
maxRetransmits56 ? なし なし43 なし
negotiated56 ? なし なし43 なし
ordered56 ? なし なし43 なし
protocol56 ? なし なし43 なし
onbufferedamountlow572 ? ? ?442 ?
onclose56 ? なし なし43 なし
onerror56 ? なし なし43 なし
onmessage56 ? なし なし43 なし
onopen56 ? なし なし43 なし
priority ? ? ? ? ? ?
readyState56 ? なし なし43 なし
reliable56 ? なし なし43 なし
Support for sctp-sdp-21 format58 ?63 なし ? なし
send56 ? なし なし43 なし
stream56 ? なし なし43 なし
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応2929 ?

24

22 — 601

あり なし あり
binaryType2929 ?22 あり なし あり
bufferedAmount5656 ? なし43 ?6.0
bufferedAmountLowThreshold5656 ? なし43 ?6.0
close5656 ? なし43 ?6.0
id5656 ? なし43 ?6.0
label5656 ? なし43 ?6.0
maxPacketLifeTime5656 ? なし43 ?6.0
maxRetransmits5656 ? なし43 ?6.0
negotiated5656 ? なし43 ?6.0
ordered5656 ? なし43 ?6.0
protocol5656 ? なし43 ?6.0
onbufferedamountlow572572 ? ?442 ?7.0
onclose5656 ? なし43 ?6.0
onerror5656 ? なし43 ?6.0
onmessage5656 ? なし43 ?6.0
onopen5656 ? なし43 ?6.0
priority ? ? ? ? ? ? ?
readyState5656 ? なし43 ?6.0
reliable5656 ? なし43 ?6.0
Support for sctp-sdp-21 format5858 ?63 ? ? ?
send5656 ? なし43 ?6.0
stream5656 ? なし43 ?6.0

1. Supported as DataChannel.

2. The default for rtcpMuxPolicy is require.

関連情報

ドキュメントのタグと貢献者

このページの貢献者: yyss, dreissig.jahrhundert
最終更新者: yyss,