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.

ブラウザー互換性

Update compatibility data on GitHub
デスクトップモバイル
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung Internet
基本対応
実験的
Chrome 完全対応 ありEdge ? Firefox 完全対応 24
完全対応 24
未対応 22 — 60
代替名
代替名 非標準の名前 DataChannel を使用しています。
IE 未対応 なしOpera 完全対応 ありSafari ? WebView Android 完全対応 4.4Chrome Android 完全対応 29Edge Mobile ? Firefox Android 完全対応 24
完全対応 24
未対応 22 — 60
代替名
代替名 非標準の名前 DataChannel を使用しています。
Opera Android 完全対応 ありSafari iOS 未対応 なしSamsung Internet Android 完全対応 あり
binaryType
実験的
Chrome 完全対応 ありEdge ? Firefox 完全対応 22IE 未対応 なしOpera 完全対応 ありSafari ? WebView Android 完全対応 4.4Chrome Android 完全対応 29Edge Mobile ? Firefox Android 完全対応 22Opera Android 完全対応 ありSafari iOS 未対応 なしSamsung Internet Android 完全対応 あり
bufferedAmount
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
bufferedAmountLowThreshold
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
closeChrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
id
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
label
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
maxPacketLifeTime
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
maxRetransmits
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
negotiated
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
ordered
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
protocol
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
onbufferedamountlow
実験的
Chrome 完全対応 57
補足
完全対応 57
補足
補足 The default for rtcpMuxPolicy is require.
Edge ? Firefox ? IE ? Opera 完全対応 44
補足
完全対応 44
補足
補足 The default for rtcpMuxPolicy is require.
Safari ? WebView Android 完全対応 57
補足
完全対応 57
補足
補足 The default for rtcpMuxPolicy is require.
Chrome Android 完全対応 57
補足
完全対応 57
補足
補足 The default for rtcpMuxPolicy is require.
Edge Mobile ? Firefox Android ? Opera Android 完全対応 44
補足
完全対応 44
補足
補足 The default for rtcpMuxPolicy is require.
Safari iOS ? Samsung Internet Android 完全対応 7.0
onclose
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
onerror
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
onmessage
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
onopen
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
priorityChrome ? Edge ? Firefox ? IE ? Opera ? Safari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android ?
readyState
実験的
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
reliable
非推奨
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
Support for sctp-sdp-21 formatChrome 完全対応 58Edge ? Firefox 完全対応 63IE 未対応 なしOpera ? Safari 未対応 なしWebView Android 完全対応 58Chrome Android 完全対応 58Edge Mobile ? Firefox Android 完全対応 63Opera Android ? Safari iOS ? Samsung Internet Android ?
sendChrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0
stream
非推奨非標準
Chrome 完全対応 56Edge ? Firefox 未対応 なしIE 未対応 なしOpera 完全対応 43Safari 未対応 なしWebView Android 完全対応 56Chrome Android 完全対応 56Edge Mobile ? Firefox Android 未対応 なしOpera Android 完全対応 43Safari iOS ? Samsung Internet Android 完全対応 6.0

凡例

完全対応  
完全対応
未対応  
未対応
実装状況不明  
実装状況不明
実験的。動作が変更される可能性があります。
実験的。動作が変更される可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非標準。ブラウザー間の互換性が低い可能性があります。
非推奨。新しいウェブサイトでは使用しないでください。
非推奨。新しいウェブサイトでは使用しないでください。
実装ノートを参照してください。
実装ノートを参照してください。
非標準の名前を使用しています。
非標準の名前を使用しています。

関連情報

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

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