RTCIceCandidate
RTCIceCandidate
是 WebRTC API 的接口之一,表示用于建立 RTCPeerConnection
的候选交互连接建立(ICE)的配置信息。
ICE
候选者描述了 WebRTC
能够与远程设备通讯的协议、路由等信息,在启动 RTCPeerConnection
对等连接时,通常由每个连接方各自提出多个候选者,直到它们互相同意一个它们都认为是最佳的连接候选者描述。WebRTC
将使用该候选者描述建立连接。
更多关于 ICE
的工作流程,可以参考 WebRTC 会话生命周期。WebRTC 连接交互这篇文章则详细介绍了 ICE
的工作原理。
构造函数
RTCIceCandidate()
-
构造一个新的表示 ICE 候选者的
RTCIceCandidate
对象。根据配置对象进行可选配置。备注:为了向后兼容,构造函数也接受一个包含
candidate
属性值字符串参数,以此替代配置对象。
实例属性
address
只读-
表示候选者的 IP 地址的字符串。
candidate
只读-
表示用于连接检查的候选者的传输地址的字符串。此地址的格式是在 RFC 5245 中定义的候选者属性(
candidate-attribute
)。如果RTCIceCandidate
是候选者结束("end of candidates")指示器,则此字符串为空字符串(""
)。 component
只读-
表示候选者是用
RTP
或者RTCP
的字符串,返回值有rtp
或rtcp
,该值是来自candidate
属性行的"component-id"
字段。 foundation
只读-
返回一个包含唯一标识符的字符串,该标识符对于来自相同的 STUN 服务器的相同类型、共享相同的基础(ICE 代理发送候选者的地址)的候选者都是相同的。这有助于优化 ICE 的性能,因为当在两个
RTCIceTransport
对象上出现多个候选者时,可以利用这些标识符来进行优先级排序和关联性判断。 port
只读-
表示候选者端口号的整型数值。
priority
只读-
表示候选者优先级的长整数值。
protocol
只读-
表示候选者协议是
"tcp"
还是"udp"
的字符串。 -
如果候选者是从另一个候选者派生的,则
relatedAddress
是一个包含该主机候选者的 IP 地址的字符串。对于主机候选者,此值为null
。 -
对于从另一个候选者派生的候选者(例如中继或反射候选者),
relatedPort
是指示派生此候选者的候选者的端口号的数字。对于主机候选者,relatedPort
属性为null
。 sdpMid
只读-
表示候选者的媒体流标识标签的字符串,该标签在候选者关联的组件中唯一标识媒体流,如果不存在这样的关联,则为
null
。 sdpMLineIndex
只读-
如果值不为
null
,sdpMLineIndex
表示SDP
中候选者关联的从零开始的媒体描述索引编号(在 RFC 4566 中定义)。 tcpType
只读-
如果
protocol
是"tcp"
,tcpType
表示 TCP 候选者的类型。否则tcpType
为null
。 type
只读-
表示候选者类型的字符串,该值为
RTCIceCandidate.type
中列出的字符串之一。 usernameFragment
只读-
一个包含随机生成的用户名片段(“ice-ufrag”)的字符串,ICE 与随机生成的密码(“ice-pwd”)一起用于消息完整性。你可以使用此字符串来验证 ICE 生成的代数;同一 ICE 进程的每一代将使用相同的
usernameFragment
,即使 ICE 重新启动也是如此。
实例方法
toJSON()
-
返回一个包含
RTCIceCandidate
当前配置的 JSON 对象。其格式与candidateInfo
对象相同,可作为可选参数传入RTCIceCandidate()
构造函数构造一个新的RTCIceCandidate
实例。
示例
请参阅文章信令和视频通话,其中演示了完整过程。
规范
Specification |
---|
WebRTC: Real-Time Communication in Browsers # rtcicecandidate-interface |
浏览器兼容性
BCD tables only load in the browser