RTCPeerConnection: connectionstatechange 事件
当 RTCRtpReceiver(属于连接的一部分)中添加了新的音轨后,就会向 RTCPeerConnection 对象上的 onconnectionstatechange 事件处理程序发送 connectionstatechange 事件。新的连接状态可以在 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;
}
});
您也可以使用 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 |
浏览器兼容性
加载中…