RTCDataChannel
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
RTCDataChannel
インターフェイスは、2 つのピア間で双方向に任意のデータを転送するためのネットワークチャンネルを表現します。すべてのデータチャンネルは RTCPeerConnection
に関連付けられており、それぞれのぴあコネクションは理論上、最大 65,534 個のデータチャンネルを持つことができます(実際の上限はブラウザーごとに異なります)。
データチャンネルを作成してリモートのピアに参加するかを問い合わせるには、RTCPeerConnection
の createDataChannel()
メソッドを呼び出します。データ交換に招かれているピアは datachannel
イベント (RTCDataChannelEvent
型) を受け取って、コネクションにデータチャンネルが追加されたことを知ります。
RTCDataChannel
は移譲可能オブジェクトです。
インスタンスプロパティ
EventTarget
からプロパティを継承しています。
binaryType
-
文字列で、
RTCDataChannel
で受信したバイナリーデータを表現するために使用されるオブジェクトの種類を指定します。 値はWebSocket.binaryType
プロパティで許可されているものと同じです。Blob
オブジェクトを使用する場合はblob
、ArrayBuffer
オブジェクトを使用する場合はarraybuffer
を指定します。 既定値はblob
です。 bufferedAmount
読取専用-
データチャンネルで送信するために現在キューイングされているデータのバイト数を返します。
bufferedAmountLowThreshold
-
バッファリングされた送信データのうち、 "low" とみなされるバイト数を指定します。 既定値は 0 です。
id
読取専用-
RTCDataChannel
を一意に識別するための ID 番号(0 から 65,534 の間)を返します。 label
読取専用-
文字列で、データチャンネルを記述している名前を返します。 このラベルは一意である必要はありません。
maxPacketLifeTime
読取専用-
データチャンネルが作成されたときに設定された、ブラウザーがメッセージの送信を試みるのにかかる許容時間 (ミリ秒単位)、または
null
を返します。 maxRetransmits
読取専用-
データチャンネルが作成されたときに設定された、ブラウザーがあきらめる前にメッセージを再送信しようとする最大回数、または最大回数がないことを示す
null
を返します。 negotiated
読取専用-
RTCDataChannel
の接続が、ウェブアプリケーションによって交渉されたのか (true
) あるいは WebRTC レイヤーによって交渉されたのか (false
) を示します。 既定値はfalse
です。 ordered
読取専用-
データチャンネルのメッセージが順番通りに配送されることを保証するかどうかを示します。 既定値は
true
で、データチャンネルが実際に順序どおりに配送されることを示します。 protocol
読取専用-
使用されているサブプロトコルの名前を格納した文字列を返します。 データチャンネルの作成時にプロトコルが指定されなかった場合、このプロパティの値は空文字列 (
""
) となります。 readyState
読取専用-
データチャンネルの基盤となるデータ接続の状態を示す文字列を返します。
connecting
,open
,closing
,closed
の値のいずれかを持つ可能性があります。
古いプロパティ
reliable
読取専用 非推奨; 非標準-
データチャンネルが reliable であるかどうかを示します。
インスタンスメソッド
EventTarget
からもメソッドを継承しています。
close()
-
RTCDataChannel
を閉じました。 どちらのピアもこのメソッドを呼び出してチャンネルの閉鎖を開始することが許可されています。 send()
-
データチャンネルを経由してリモートピアーにデータを送信します。
イベント
bufferedamountlow
-
送信データバッファー内のデータバイト数が
bufferedAmountLowThreshold
で指定する値以下になると送信されます。 close
-
基盤となるデータトランスポートが閉じられたときに送信されます。
closing
-
基盤となるデータトランスポートが閉じ始めようとするときに送られます。
error
-
データチャンネルにエラーが発生したときに送信されます。
message
-
リモートピアからメッセージを受信したときに送信されます。 メッセージのコンテンツは、イベントの
data
プロパティで得ることができます。 open
-
データチャンネルが最初に開かれたとき、または既存のデータチャンネルの基盤となる接続が再び開かれたときに送信されます。
データ形式
基礎となるデータ形式は、 IEEE の仕様書 SDP Offer/Answer Procedures for SCTP over DTLS Transport(RFC 8841) によって定義されています。現在の形式では、そのプロトコルを "UDP/DTLS/SCTP"
(SCTP を運ぶ DTLS を運ぶ UDP) または "TCP/DTLS/SCTP"
(SCTP を運ぶ DTLS を運ぶ TCP) のいずれかに指定する。古いブラウザーでは "DTLS/SCTP"
のみを指定することができます。
例
const pc = new RTCPeerConnection();
const dc = pc.createDataChannel("my channel");
dc.onmessage = (event) => {
console.log(`received: ${event.data}`);
};
dc.onopen = () => {
console.log("datachannel open");
};
dc.onclose = () => {
console.log("datachannel close");
};
仕様書
Specification |
---|
WebRTC: Real-Time Communication in Browsers # rtcdatachannel |
ブラウザーの互換性
BCD tables only load in the browser