RTCPeerConnection: connectionstatechange 事件
**connectionstatechange
** 事件在将新的轨道添加到连接的一部分的 RTCRtpReceiver
之后,发送到 RTCPeerConnection
对象上的 onconnectionstatechange
事件处理程序。新的连接状态可以在 connectionState
中找到,并且是以下字符串值之一:new
、connecting
、connected
、disconnected
、failed
或 closed
。
此事件不可取消,也不会冒泡。
语法
在诸如 addEventListener()
之类的方法中使用事件名称,或设置事件处理程序属性。
js
addEventListener("connectionstatechange", (event) => {});
onconnectionstatechange = (event) => {};
事件类型
一个通用的 Event
。
示例
对于名为 peerConnection
的 RTCPeerConnection
,此示例使用 addEventListener()
来处理 WebRTC 会话连接性的更改。它调用一个名为 setOnlineStatus()
的应用程序定义函数来更新状态显示。
js
peerConnection.addEventListener(
"connectionstatechange",
(event) => {
switch (peerConnection.connectionState) {
case "new":
case "connecting":
setOnlineStatus("Connecting…");
break;
case "connected":
setOnlineStatus("Online");
break;
case "disconnected":
setOnlineStatus("Disconnecting…");
break;
case "closed":
setOnlineStatus("Offline");
break;
case "failed":
setOnlineStatus("Error");
break;
default:
setOnlineStatus("Unknown");
break;
}
},
false,
);
您还可以使用 RTCPeerConnection.onconnectionstatechange
属性为 connectionstatechange
事件创建处理程序
js
peerConnection.onconnectionstatechange = (ev) => {
switch (peerConnection.connectionState) {
case "new":
case "connecting":
setOnlineStatus("Connecting…");
break;
// …
default:
setOnlineStatus("Unknown");
break;
}
};
规范
规范 |
---|
WebRTC:浏览器中的实时通信 # dom-rtcpeerconnection-onconnectionstatechange |
浏览器兼容性
BCD 表格仅在启用了 JavaScript 的浏览器中加载。