The read-only property
RTCPeerConnection.iceConnectionState
returns an enum of type
RTCIceConnectionState
which state of the ICE agent associated with the
RTCPeerConnection
.
You can detect when this value has changed by watching for the
iceconnectionstatechange
事件。
var state = RTCPeerConnection.iceConnectionState;
The current state of the ICE agent and its connection. The value is one of the strings in the
RTCIceConnectionState
enum
.
RTCIceConnectionState
enum defines the string constants used to describe the current state of the ICE agent and its connection to the ICE server (that is, the
STUN
or
TURN
server).
| 常量 | 描述 |
|---|---|
"new"
|
The ICE agent is gathering addresses or is waiting to be given remote candidates through calls to
RTCPeerConnection.addIceCandidate()
(or both).
|
"checking"
|
The ICE agent has been given one or more remote candidates and is checking pairs of local and remote candidates against one another to try to find a compatible match, but has not yet found a pair which will allow the peer connection to be made. It's possible that gathering of candidates is also still underway. |
"connected"
|
A usable pairing of local and remote candidates has been found for all components of the connection, and the connection has been established. It's possible that gathering is still underway, and it's also possible that the ICE agent is still checking candidates against one another looking for a better connection to use. |
"completed"
|
The ICE agent has finished gathering candidates, has checked all pairs against one another, and has found a connection for all components. |
"failed"
|
The ICE candidate has checked all candidates pairs against one another and has failed to find compatible matches for all components of the connection. It is, however, possible that the ICE agent did find compatible connections for some components. |
"disconnected"
|
Checks to ensure that components are still connected failed for at least one component of the
RTCPeerConnection
. This is a less stringent test than
"failed"
and may trigger intermittently and resolve just as spontaneously on less reliable networks, or during temporary disconnections. When the problem resolves, the connection may return to the
"connected"
状态。
|
"closed"
|
The ICE agent for this
RTCPeerConnection
has shut down and is no longer handling requests.
|
var pc = new RTCPeerConnection(); var state = pc.iceConnectionState;
| 规范 | 状态 | 注释 |
|---|---|---|
|
WebRTC 1.0: Real-time Communication Between Browsers
The definition of 'RTCPeerConnection.iceConnectionState' in that specification. |
候选推荐 | 最初的规范。 |
| 桌面 | 移动 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
iceConnectionState
|
Chrome 26 | Edge 15 | Firefox 52 | IE No |
Opera
43
|
Safari 11 | WebView Android Yes | Chrome Android 26 | Firefox Android Yes |
Opera Android
43
|
Safari iOS Yes | Samsung Internet Android 7.0 |
完整支持
不支持
见实现注意事项。
RTCPeerConnection
canTrickleIceCandidates
connectionState
currentLocalDescription
currentRemoteDescription
getDefaultIceServers()
iceConnectionState
iceGatheringState
localDescription
onaddstream
onconnectionstatechange
ondatachannel
onicecandidate
oniceconnectionstatechange
onicegatheringstatechange
onidentityresult
onidpassertionerror
onidpvalidationerror
onnegotiationneeded
onpeeridentity
onremovestream
onsignalingstatechange
ontrack
peerIdentity
pendingLocalDescription
pendingRemoteDescription
remoteDescription
sctp
signalingState
addIceCandidate()
addStream()
addTrack()
close()
createAnswer()
createDataChannel()
createOffer()
generateCertificate()
getConfiguration()
getIdentityAssertion()
getReceivers()
getSenders()
getStats()
getStreamById()
getTransceivers()
removeStream()
removeTrack()
restartIce()
setConfiguration()
setIdentityProvider()
setLocalDescription()
setRemoteDescription()
MediaDevices.getUserMedia()
Navigator.mediaDevices
RTCCertificate
RTCDTMFSender
RTCDTMFToneChangeEvent
RTCDataChannel
RTCDataChannelEvent
RTCDtlsTransport
RTCErrorEvent
RTCIceCandidate
RTCIceTransport
RTCPeerConnectionIceErrorEvent
RTCPeerConnectionIceEvent
RTCRtpReceiver
RTCRtpSender
RTCRtpTransceiver
RTCSctpTransport
RTCSessionDescription
RTCStatsEvent
RTCStatsReport
RTCTrackEvent