RTCIceCandidate

Baseline 广泛可用 *

此功能已成熟,可跨多种设备和浏览器版本使用。自 2017 年 9 月以来,它已在浏览器中提供。

* 此特性的某些部分可能存在不同级别的支持。

RTCIceCandidate 接口 — WebRTC API 的一部分 — 代表一个交互式连接建立 (Interactive Connectivity Establishment, ICE) 配置候选,可用于建立一个 RTCPeerConnection

ICE 候选描述了 WebRTC 与远程设备通信所需的协议和路由。在启动 WebRTC 对等连接时,通常双方会提出若干个候选,直到双方就一个描述了他们认为最佳的连接的候选达成一致。然后 WebRTC 使用该候选的详细信息来发起连接。

有关 ICE 过程的详细信息,请参阅 WebRTC 会话的生命周期。文章 WebRTC 连接 提供了更多有用的详细信息。

构造函数

RTCIceCandidate()

创建一个 RTCIceCandidate 对象来表示单个 ICE 候选,并可选择根据配置对象进行配置。

注意: 为了向后兼容,构造函数还接受一个包含 candidate 属性值的字符串作为输入,而不是配置对象。

实例属性

address 只读

包含候选 IP 地址的字符串。

candidate 只读

一个字符串,表示可用于连接检查的候选的传输地址。此地址的格式是 RFC 5245 中定义的 candidate-attribute。如果 RTCIceCandidate 是“候选结束”指示符,则此字符串为空 ("")。

component 只读

一个字符串,指示候选是 RTP 候选还是 RTCP 候选;其值是 rtprtcp,并从 candidate a-line 字符串中的 "component-id" 字段派生。

foundation 只读

返回一个字符串,包含一个唯一标识符,该标识符对于相同类型的任何候选都是相同的,共享相同的基(ICE 代理发送候选的地址),并且来自相同的 STUN 服务器。这用于帮助优化 ICE 性能,同时优先处理和关联出现在多个 RTCIceTransport 对象上的候选。

port 只读

指示候选端口号的整数值。

priority 只读

指示候选优先级的长整型值。

protocol 只读

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

relatedAddress 只读

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

relatedPort 只读

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

sdpMid 只读

一个字符串,指定候选的媒体流标识符标签,该标签唯一标识与该候选关联的组件内的媒体流,如果不存在此类关联,则为 null

sdpMLineIndex 只读

如果不为 nullsdpMLineIndex 表示媒体描述(如 RFC 4566 中定义)在 SDP 中的零基索引编号,该编号与候选相关联。

tcpType 只读

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

type 只读

指示候选类型的字符串,其值是 RTCIceCandidate.type 中列出的字符串之一。

usernameFragment 只读

包含一个随机生成的用户名片段 ("ice-ufrag") 的字符串,ICE 使用该用户名片段与随机生成的密码 ("ice-pwd") 一起实现消息完整性。您可以使用此字符串来验证 ICE 生成的代数;同一 ICE 过程的每一代都会使用相同的 usernameFragment,即使在 ICE 重启时也是如此。

实例方法

toJSON()

返回 RTCIceCandidate 当前配置的 JSON 表示形式。表示形式与 candidateInfo 对象相同,该对象可选择性地传递给 RTCIceCandidate() 构造函数来配置候选。

示例

有关示例,请参阅文章 信令与视频通话,其中演示了整个过程。

规范

规范
WebRTC:浏览器中的实时通信
# rtcicecandidate-interface

浏览器兼容性