RTCPeerConnection: iceConnectionState 属性

**iceConnectionState** 是 RTCPeerConnection 接口的只读属性,它返回一个字符串,表示与 RTCPeerConnection 关联的 ICE 代理的状态:newcheckingconnectedcompletedfaileddisconnectedclosed

它描述了 ICE 代理及其与 ICE 服务器连接的当前状态;即,STUNTURN 服务器。

您可以通过监听 iceconnectionstatechange 事件来检测该值何时发生变化。

ICE 代理及其连接的当前状态。该值是以下字符串之一:

new

ICE 代理正在收集地址或正在等待通过调用 RTCPeerConnection.addIceCandidate()(或两者)来提供远程候选者。

checking

ICE 代理已收到一个或多个远程候选者,并且正在检查本地和远程候选者的配对以尝试找到兼容的匹配项,但尚未找到允许建立对等连接的配对。收集候选者可能仍在进行中。

connected

已为连接的所有组件找到了可用的本地和远程候选者配对,并且已建立连接。收集候选者可能仍在进行中,并且 ICE 代理也可能仍在检查候选者的配对以寻找更好的连接。

completed

ICE 代理已完成收集候选者,已检查所有配对,并已为所有组件找到连接。

failed

ICE 代理已检查所有候选者配对,但未能为连接的所有组件找到兼容的匹配项。但是,ICE 代理可能已为某些组件找到了兼容的连接。

disconnected

检查以确保组件仍连接的检查在 RTCPeerConnection 的至少一个组件上失败。这比 failed 检查要宽松,并且可能在不太可靠的网络或临时断开连接期间间歇性地触发,并可能在问题解决后立即恢复到 connected 状态。

closed

RTCPeerConnection 的 ICE 代理已关闭,不再处理请求。

示例

js
const pc = new RTCPeerConnection();
const state = pc.iceConnectionState;

规范

规范
WebRTC:浏览器中的实时通信
# dom-peerconnection-ice-connection-state

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅