RTCIceCandidate - 表示候选 Internet 连接建立(ICE)配置

RTCIceCandidateWebRTC API 的一部分,表示候选 Internet 连接建立(ICE)配置,该配置可用于建立 RTCPeerConnection

候选 ICE 描述了 WebRTC 能够与远程设备进行通信所需的协议和路由。在开始 WebRTC 对等连接时,通常在连接的每一端都建议多个候选对象,直到它们彼此同意描述它们认为最好的连接的候选对象为止。然后,WebRTC 使用该候选者的详细信息来发起连接。

有关 ICE 流程如何工作的详细信息,请参见 WebRTC 会话的生存期。文章 WebRTC 连接提供了其他有用的详细信息。

构造函数

RTCIceCandidate()

创建一个 RTCIceCandidate 对象来表示单个 ICE 候选对象,可以根据基于 RTCIceCandidateInit 字典的对象进行配置。

注意: 为了向后兼容,构造函数还接受包含 candidate 属性值而不是 RTCIceCandidateInit 对象,因为 candidate 包含 RTCIceCandidateInit 包含的所有信息以及更多信息。

属性

candidate 只读

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

component 只读

一个 DOMString,指示候选者是 RTP 还是 RTCP 候选者;它的值是 "rtp""rtcp",并且是从 candidate 字符串中的 "component-id" 字段中得出的。允许的值以 RTCIceComponent 枚举类型列出。

foundation 只读

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

ip 只读

一个 DOMString,表示候选者 IP 地址。

port 只读

一个整数值,表示候选端口号。

priority 只读

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

protocol 只读

一个字符串,指示候选者的协议是 "tcp" 还是 "udp"。该字符串是枚举类型 RTCIceProtocol 中的字符串之一。

relatedAddress 只读

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

relatedPort 只读

对于从另一个候选对象(例如中继或自反候选对象)衍生的候选对象,relatedPort 是一个数字,表示从中派生该候选对象的候选对象的端口号。对于主持候选者,relatedPort 属性为 null

sdpMid 只读

一个 DOMString,指定候选者的媒体流标识标签,用于唯一标识与候选者相关联的组件中的媒体流,如果不存在这样的关联,则为 null

sdpMLineIndex 只读

如果不是 null,则 sdpMLineIndex 表示与候选者相关联的 SDP 中媒体描述(如 RFC 4566 中定义)的从零开始的索引号。

tcpType 只读

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

type 只读

一个 DOMString,指示候选类型,作为来自 RTCIceCandidateType 枚举类型中的字符串之一。

usernameFragment 只读

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

方法

toJSON()

给定 RTCIceCandidate 的当前配置,toJSON() 返回一个 DOMString,表示该配置的 JSON,形式为 RTCIceCandidateInit 对象。

实例

有关实例,请参阅文章信号和视频呼叫,该文章演示了整个过程。

规范

规范 状态 备注
WebRTC 1.0: Real-time Communication Between Browsers
RTCIceCandidate 的定义
候选推荐 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持 支持 支持22 不支持 支持 支持
RTCIceCandidate() 构造函数 支持 支持221 不支持 支持 未知
address74 未知 未知 不支持 未知 未知
candidate231522 不支持15 支持
component74 未知 不支持 不支持 未知 未知
foundation74 支持 不支持 不支持 不支持 未知
ip 不支持 支持 不支持 不支持 不支持 未知
port74 支持 不支持 不支持 不支持 未知
priority74 支持 不支持 不支持 不支持 未知
protocol74 支持 不支持 不支持 不支持 未知
relatedAddress74 支持 不支持 不支持 不支持 未知
relatedPort74 支持 不支持 不支持 不支持 未知
sdpMid231522 不支持15 支持
sdpMLineIndex231522 不支持15 支持
tcpType74 支持 不支持 不支持 不支持 未知
toJSON451527 不支持32 支持
type74 支持 不支持 不支持 不支持 未知
usernameFragment74 未知67 不支持 未知 未知

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 支持 支持 未知 支持 未知 支持 支持
RTCIceCandidate() 构造函数 支持 支持 未知 支持1 未知 支持 未知
address7474 未知 未知 未知 未知 未知
candidate 支持25 未知 支持 未知14 支持
component7474 未知 不支持 未知 未知 未知
foundation7474 未知 未知 未知 不支持 未知
ip 不支持 不支持 未知 不支持 未知 不支持 未知
port7474 未知 不支持 未知 不支持 未知
priority7474 未知 不支持 未知 不支持 未知
protocol7474 未知 不支持 未知 不支持 未知
relatedAddress7474 未知 不支持 未知 不支持 未知
relatedPort7474 未知 不支持 未知 不支持 未知
sdpMid 支持25 未知 支持 未知14 支持
sdpMLineIndex 支持25 未知 支持 未知14 支持
tcpType7474 未知 不支持 未知 不支持 未知
toJSON4545 未知27 未知32 支持
type7474 未知 不支持 未知 不支持 未知
usernameFragment7474 未知67 未知 未知 未知

1. 在 Firefox 68 之前,构造函数的 options 参数是必填的。