通過瀏覽器使用WebRTC時會話終止或斷開都是什么原因?


WebRTC現在已經成為了W3C的正式標准,提供具有NAT遍歷功能的次秒級的點對點視頻和音頻流。次秒級延遲已經被廣泛應用於視頻會議之中,也一直是視頻流公司的焦點,目前我們已經在EasyGBS平台內實現了webrtc視頻的播放,如下圖:

在瀏覽器使用webrtc,那么在以下情況出現時將會導致會話終止:

A、關閉瀏覽器后,會話將終止;

B、關閉webrtc會話所在的選項卡時,會話將終止;

C、屬性webrtc會話所在的頁面時,會話將終止;

D、點擊連接移至到不同頁面(即使在同一站點上)時,會話將終止。

所以可以將WebRTC的斷開連接分為3大類:

A、完全無法連接

B、媒體流斷開

C、信令斷開

在每個場景中,都會有多個場景,定義失敗的原因以及如何處理和客服這些問題,下面我們逐個來分析一下。

無法連接:

有的情況是連接webrtc會話時發生了大量的失敗,甚至無法發送SDP信息,通過跨瀏覽器和設備的互操作性問題,再到無法連接進行媒體ICE的協商。

如果出現這種情況,解決的辦法是:重新進行SDP信息協商和ICE的信息交換;或者查看服務端有沒有運行。才導致的信息發不出去。

媒體斷開:

發生這種情況的原因有很多種:

  • 所使用接入點的防火牆策略殺死P2P加密流量;
  • 用戶在會話中途從一個網絡卻換到另一個網絡,這樣網絡協商錯誤,您應該遵循webrtc的ICE協商機制;
  • 另一端崩潰、關閉或者下線,也會導致媒體斷開。

每一個媒體斷開都需要不同的處理,在一些代碼中有些需要手動處理。防火牆問題就是客戶端與客戶端在一起制定配置以解決問題。

信令斷開:

如果信令斷開連接,webrtc甚至不知道,因此webrtc不會立即導致會話本身斷開連接。那么可以根據服務器的websocket連接的狀態來終止webrtc對等連接,在服務器端一旦連接丟失,應該終止媒體路徑,向對端發送斷開連接消息。想確保媒體流繼續進行,需要在連接同一個用戶或者會話的對等連接,可以在連接狀態中添加一個計時器來確保連接狀態。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM