RTCIceCandidate

RTCIceCandidateWebRTC API 的接口之一,表示用于建立 RTCPeerConnection 的候选交互连接建立(ICE)的配置信息。

ICE 候选者描述了 WebRTC 能够与远程设备通讯的协议、路由等信息,在启动 RTCPeerConnection 对等连接时,通常由每个连接方各自提出多个候选者,直到它们互相同意一个它们都认为是最佳的连接候选者描述。WebRTC 将使用该候选者描述建立连接。

更多关于 ICE 的工作流程,可以参考 WebRTC 会话生命周期WebRTC 连接交互这篇文章则详细介绍了 ICE 的工作原理。

构造函数

RTCIceCandidate() (en-US)

构造一个新的表示 ICE 候选者的 RTCIceCandidate 对象。根据配置对象进行可选配置。

备注: 为了向后兼容,构造函数也接受一个包含 candidate 属性值字符串参数,以此替代配置对象。

实例属性

address 只读

表示候选者的 IP 地址的字符串。

candidate 只读

表示用于连接检查的候选者的传输地址的字符串。此地址的格式是在 RFC 5245 中定义的候选者属性(candidate-attribute)。如果 RTCIceCandidate 是候选者结束("end of candidates")指示器,则此字符串为空字符串("")。

component (en-US) 只读

表示候选者是用 RTP 或者 RTCP 的字符串,返回值有 rtprtcp,该值是来自 candidate 属性行的 "component-id" 字段。

foundation (en-US) 只读

返回一个包含唯一标识符的字符串,该标识符对于来自相同的 STUN 服务器的相同类型、共享相同的基础(ICE 代理发送候选者的地址)的候选者都是相同的。这有助于优化 ICE 的性能,因为当在两个 RTCIceTransport (en-US) 对象上出现多个候选者时,可以利用这些标识符来进行优先级排序和关联性判断。

port 只读

表示候选者端口号的整型数值。

priority (en-US) 只读

表示候选者优先级的长整数值。

protocol 只读

表示候选者协议是 "tcp" 还是 "udp" 的字符串。

relatedAddress (en-US) 只读

如果候选者是从另一个候选者派生的,则 relatedAddress 是一个包含该主机候选者的 IP 地址的字符串。对于主机候选者,此值为 null

relatedPort (en-US) 只读

对于从另一个候选者派生的候选者(例如中继或反射候选者),relatedPort 是指示派生此候选者的候选者的端口号的数字。对于主机候选者,relatedPort 属性为 null

sdpMid (en-US) 只读

表示候选者的媒体流标识标签的字符串,该标签在候选者关联的组件中唯一标识媒体流,如果不存在这样的关联,则为 null

sdpMLineIndex (en-US) 只读

如果值不为 nullsdpMLineIndex 表示 SDP 中候选者关联的从零开始的媒体描述索引编号(在 RFC 4566 中定义)。

tcpType (en-US) 只读

如果 protocol"tcp"tcpType 表示 TCP 候选者的类型。否则 tcpTypenull

type (en-US) 只读

表示候选者类型的字符串,该值为 RTCIceCandidate.type (en-US) 中列出的字符串之一。

usernameFragment (en-US) 只读

一个包含随机生成的用户名片段(“ice-ufrag”)的字符串,ICE 与随机生成的密码(“ice-pwd”)一起用于消息完整性。你可以使用此字符串来验证 ICE 生成的代数;同一 ICE 进程的每一代将使用相同的 usernameFragment,即使 ICE 重新启动也是如此。

实例方法

toJSON() (en-US)

返回一个包含 RTCIceCandidate 当前配置的 JSON 对象。其格式与 candidateInfo 对象相同,可作为可选参数传入 RTCIceCandidate() (en-US) 构造函数构造一个新的 RTCIceCandidate 实例。

示例

请参阅文章信令和视频通话,其中演示了完整过程。

规范

Specification
WebRTC: Real-Time Communication in Browsers
# rtcicecandidate-interface

浏览器兼容性

BCD tables only load in the browser