RTCPeerConnection: signalingState 屬性
RTCPeerConnection 介面的只讀屬性 signalingState 返回一個字串值,該值描述了連線或重新連線到另一個對等端時,連線本地端的信令過程的狀態。請參閱我們 WebRTC 會話生命週期頁面上的 信令。
由於信令過程是一個狀態機,因此能夠驗證您的程式碼在訊息到達時處於預期狀態有助於避免意外和可避免的故障。例如,如果您在 signalingState 不是 "have-local-offer" 時收到應答,您就知道有問題,因為您應該只在建立 offer 之後、但在應答被接收並傳遞到 RTCPeerConnection.setLocalDescription() 之前收到應答。如果您注意並優雅地處理這種不匹配的狀態,您的程式碼將更可靠。
此值在除錯過程中也可能很有用,例如。
此外,當此屬性的值發生更改時,會向 RTCPeerConnection 例項傳送一個 signalingstatechange 事件。
值
允許的字串值是
stable-
目前沒有正在進行的 offer 和 answer 交換。這可能意味著
RTCPeerConnection物件是新的,在這種情況下,localDescription和remoteDescription都為null;這也可能意味著協商已完成,並且連線已建立。 have-local-offer-
本地對等端已呼叫
RTCPeerConnection.setLocalDescription(),傳遞了代表 offer 的 SDP(通常透過呼叫RTCPeerConnection.createOffer()建立),並且 offer 已成功應用。 have-remote-offer-
遠端對等端已建立 offer,並使用信令伺服器將其傳遞給本地對等端,本地對等端已透過呼叫
RTCPeerConnection.setRemoteDescription()將該 offer 設定為遠端描述。 have-local-pranswer-
遠端對等端傳送的 offer 已被應用,並且已經透過呼叫
RTCPeerConnection.setLocalDescription()建立(通常透過呼叫RTCPeerConnection.createAnswer())並應用了一個應答。這個臨時應答描述了支援的媒體格式等,但可能不包含完整的 ICE 候選集。後續的候選將稍後單獨傳遞。 have-remote-pranswer-
已收到一個臨時應答,併成功應用到先前透過呼叫
setLocalDescription()傳送並建立的 offer 上。 closed-
RTCPeerConnection已關閉。
示例
const pc = new RTCPeerConnection(configuration);
const state = pc.signalingState;
規範
| 規範 |
|---|
| WebRTC:瀏覽器中的即時通訊 # dom-peerconnection-signaling-state |
瀏覽器相容性
載入中…