WebRTC - RTCDataChannel API
WebRTC 不仅擅长传输音频和视频流,还擅长传输我们可能拥有的任何任意数据。这就是 RTCDataChannel 对象发挥作用的地方。
RTCDataChannel API
属性
RTCDataChannel.label(只读) − 返回包含数据通道名称的字符串。
RTCDataChannel.ordered(只读) − 如果消息传递的顺序有保证,则返回 true;如果不能保证,则返回 false。
RTCDataChannel.protocol(只读) −返回包含用于此通道的子协议名称的字符串。
RTCDataChannel.id(只读) − 返回在创建 RTCDataChannel 对象时设置的通道的唯一 ID。
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 − 当触发 bufferedamoutlow 事件时,将调用此事件处理程序。当 RTCDataChannel.bufferedAmount 降低到 RTCDataChannel.bufferedAmountLowThreshold 属性以下时,将发送此事件。
RTCDataChannel.onclose − 当触发 close 事件时,将调用此事件处理程序。当数据连接关闭时,会发送此事件。
RTCDataChannel.onerror − 当触发错误事件时,会调用此事件处理程序。当遇到错误时,会发送此事件。
方法
RTCDataChannel.close() − 关闭数据通道。
RTCDataChannel.send() − 通过通道发送参数中的数据。数据可以是 blob、字符串、ArrayBuffer 或 ArrayBufferView。