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。

广告