2017-07-02 126 views
0

可以請有人澄清之間的區別iceConnectionstate:完成iceConnectionstate:連接冰連接狀態,完成與連接

當我使用webrtc連接到瀏覽器時,我可以使用數據通道交換數據,但出於某種原因,瀏覽器上的iceConnectionstate會使接受提供更改的瀏覽器完成更改以連接。

任何想法,如果這是正常的?

回答

0

ICE連接狀態轉換有點棘手,下面的流程圖可以清楚地瞭解可能的轉換。

ICE Transport State Diagram

在簡單的話:
新/檢查:不是在連接
連接/完成:媒體路徑可用
斷開/失敗:媒體路徑不可用(無論您在數據通道上發送的數據是否會到達另一端)

閱讀完整摘要here

Still WebRTC團隊正在努力使其穩定& spec投訴。
當前鉻行爲是令人困惑的,所以我提交了一個bug,你可以通過明星來獲得通知。

1

簡而言之:

  • 連接:實測值工作候選對,但仍執行連接性檢查找到一個更好的。
  • 完成:找到一對正在工作的候選人並完成了連接檢查。

對於大多數情況,您可以將連接/完成狀態視爲同一事物。

請注意,正如Ajay所述,標準在如何定義狀態以及如何在Chrome中實現它們之間有一些顯着的差異。主要想到的是:

  • 沒有「候選人結束」信號,所以沒有實現候選狀態定義的那些部分。這意味着如果遠程候選人遲到,可以在沒有ICE重啓的情況下從「完成」回到「連接」。雖然我認爲這在實踐中很少見。
  • ICE狀態實際上是ICE + DTLS狀態的組合(請參閱:https://bugs.chromium.org/p/webrtc/issues/detail?id=6145)。這是因爲它是在「RTCPeerConnectionState」之類的東西之前實現的。如果實際存在DTLS級別問題,這可能會導致混淆,因爲唯一真正注意的方法是查看本地Chrome日誌。

我們絕對計劃修復所有的差異。但是一段時間以來,我們因爲標準仍然不穩定而擱淺。而現在,我們的首要任務就是實施統一計劃SDP和RtpSender/RtpReceiver API。

+0

常識指導如果兩個對等點是連接點,它們將具有相同的狀態,但似乎發起連接的對等點完成並且對等應答保持連接狀態。 – user2288650