WebRTC - RTCDataChannel APIs



WebRTC 不僅擅長傳輸音訊和影片流,還可以傳輸任何我們可能擁有的任意資料。這就是 RTCDataChannel 物件發揮作用的地方。

RTCDataChannel API

屬性

  • RTCDataChannel.label (只讀) − 返回包含資料通道名稱的字串。

  • RTCDataChannel.ordered (只讀) − 如果保證訊息的傳遞順序則返回 true,否則返回 false。

  • RTCDataChannel.protocol (只讀) − 返回為此通道使用的子協議名稱字串。

  • RTCDataChannel.id (只讀) − 返回通道的唯一 ID,在建立 RTCDataChannel 物件時設定。

  • RTCDataChannel.readyState (只讀) − 返回表示連線狀態的 RTCDataChannelState 列舉。可能的值 -

    • connecting − 表示連線尚未啟用。這是初始狀態。

    • open − 表示連線正在執行。

    • closing − 表示連線正在關閉過程中。快取的訊息正在傳送或接收中,但沒有新建立的任務正在接受。

    • closed − 表示連線未能建立或已關閉。

  • RTCDataChannel.bufferedAmount (只讀) − 返回已排隊等待發送的位元組數。這是尚未透過 RTCDataChannel.send() 傳送的資料量。

  • RTCDataChannel.bufferedAmountLowThreshold − 返回 RTCDataChannel.bufferedAmount 被視為較低的位元組數。當 RTCDataChannel.bufferedAmount 降到此閾值以下時,將觸發 bufferedamountlow 事件。

  • RTCDataChannel.binaryType − 返回連線傳輸的二進位制資料的型別。可以是“blob”或“arraybuffer”。

  • RTCDataChannel.maxPacketLifeType (只讀) − 返回一個無符號短整型,指示訊息以不可靠模式傳輸時的視窗長度(毫秒)。

  • RTCDataChannel.maxRetransmits (只讀) − 返回一個無符號短整型,指示如果資料未送達,通道將重傳資料的最大次數。

  • RTCDataChannel.negotiated (只讀) − 返回一個布林值,指示通道是由使用者代理還是應用程式協商的。

  • RTCDataChannel.reliable (只讀) − 返回一個布林值,指示連線是否可以以不可靠模式傳送訊息。

  • RTCDataChannel.stream (只讀) − RTCDataChannel.id 的同義詞

事件處理程式

  • RTCDataChannel.onopen − 當觸發 open 事件時呼叫此事件處理程式。當資料連線已建立時傳送此事件。

  • RTCDataChannel.onmessage − 當觸發 message 事件時呼叫此事件處理程式。當資料通道上有可用訊息時傳送此事件。

  • RTCDataChannel.onbufferedamountlow − 當觸發 bufferedamountlow 事件時呼叫此事件處理程式。當 RTCDataChannel.bufferedAmount 降到 RTCDataChannel.bufferedAmountLowThreshold 屬性以下時傳送此事件。

  • RTCDataChannel.onclose − 當觸發 close 事件時呼叫此事件處理程式。當資料連線已關閉時傳送此事件。

  • RTCDataChannel.onerror − 當觸發 error 事件時呼叫此事件處理程式。當遇到錯誤時傳送此事件。

方法

  • RTCDataChannel.close() − 關閉資料通道。

  • RTCDataChannel.send() − 透過通道傳送引數中的資料。資料可以是 blob、字串、ArrayBuffer 或 ArrayBufferView。

廣告