RTCDataChannel
インターフェイスは、2 つのピア間で双方向に任意のデータを転送するためのネットワークチャンネルを表現します。すべてのデータチャンネルは RTCPeerConnection
に関連付けられており、それぞれのぴあコネクションは理論上、最大 65,534 個のデータチャンネルを持つことができます (実際の上限はブラウザーごとに異なります)。
データチャンネルを作成してリモートのピアに参加するかを問い合わせるには、RTCPeerConnection
の createDataChannel()
メソッドを呼び出します。データ交換に招かれているピアは 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
読取専用- コネクションはメッセージを無信頼性モードで送信可能かを示す
Boolean
です。 DataChannel.stream
読取専用- 旧式です。
RTCDataChannel.id
と同じ意味を持ちます。
イベントハンドラ
RTCDataChannel.onopen
open
イベントを受信した時に呼ばれるイベントハンドラです。このイベントは、データコネクションのための下位のデータトランスポートが確立された時に送信されます。RTCDataChannel.onmessage
message
イベントを受信した時に呼ばれるイベントハンドラです。このイベントは、データコネクション上でメッセージを受信した時に送信されます。RTCDataChannel.onclose
close
イベントを受信した時に呼ばれるイベントハンドラです。このイベントは、下位のデータトランスポートが閉じた時に送信されます。RTCDataChannel.onerror
error
イベントを受信した時に呼ばれるイベントハンドラです。このイベントは、エラーに遭遇した時に送信されます。
メソッド
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 Browsers RTCDataChannel の定義 |
勧告候補 | Initial specification. |
ブラウザー互換性
BCD tables only load in the browser
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.