これは実験段階の機能です。
この機能は複数のブラウザで開発中の状態にあります。各ブラウザで用いるために、適切なベンダー接頭辞が必要な場合があります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザの将来のバージョンで変更になる可能性があることに注意してください。
RTCDataChannel インタフェースは、2つのピア間のコネクションの双方向データチャンネルを表現します。
この種類のオブジェクトは、RTCDataChannel.createDataChannel()によって作成可能であり、また、既存のRTCPeerConnection の イベント datachannel で取得できます。
Geckoでは、このAPIは標準的な RTCDataChannelの名前に変わってDataChannelと表記されています。
プロパティ
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.onopenopenイベントを受信した時に呼ばれるイベントハンドラです。このイベントは、データコネクションのための下位のデータトランスポートが確立された時に送信されます。RTCDataChannel.onmessagemessageイベントを受信した時に呼ばれるイベントハンドラです。このイベントは、データコネクション上でメッセージを受信した時に送信されます。RTCDataChannel.onclosecloseイベントを受信した時に呼ばれるイベントハンドラです。このイベントは、下位のデータトランスポートが閉じた時に送信されます。RTCDataChannel.onerrorerrorイベントを受信した時に呼ばれるイベントハンドラです。このイベントは、エラーに遭遇した時に送信されます。
メソッド
RTCDataChannel.close()- チャンネルを閉じます。突然でない方法でチャンネルを閉じます。チャンネルの
stateは"closing"に設定され、送信されていないメッセージは送信されてから、チャンネルを���じます。 RTCDataChannel.send()- チャンネルのパラメータに従いデータを送信します。送信可能なデータの型は
DOMStringまたはBlob、ArrayBuffer、ArrayBufferViewです。
例
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 Browser The definition of 'RTCDataChannel' in that specification. |
草案 | Initial specification. |
ブラウザ互換性
| Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Basic support | (有) | (有) [1] | 未サポート | (有) | ? |
| Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Basic support | ? | ? | ? | 未サポート | ? | ? |
[1] このインタフェースは DataChannel で表記されており RTCDataChannel ではありません。

