RTCDataChannel

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.maxPacketLifeTime 読取専用
無信頼性モードでのメッセージングでの、ミリ秒単位のウィンドウ長を示すunsigned shortです。
RTCDataChannel.maxRetransmits 読取専用
無信頼性モードでのメッセージングでの、最大再送信回数を示すunsigned shortです。
RTCDataChannel.negotiated 読取専用
アプリケーションによってチャンネルがネゴシエーションされたかされていなかを示すBooleanです。
DataChannel.reliable この API は標準化されていません。 読取専用
コネクションはメッセージを無信頼性モードで送信可能かを示すBooleanです。
DataChannel.stream この API は標準化されていません。 読取専用
旧式です。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.

ブラウザー互換性

BCD tables only load in the browser

関連情報