We're looking for a user researcher to understand the needs of developers and designers. Is this you or someone you know? Check out the post: https://mzl.la/2IGzdXS

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

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.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.

ブラウザ互換性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

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 ではありません。

See also

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

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