2
WebRTC調用在我們的應用程序中不可靠。有時我們會看到黑屏,有時候我們根本看不到通話開始,有時會看到巨大的延遲或音頻/視頻中的不同步。如何解決不可靠的WebRTC調用?
設置:
- 谷歌的公共STUN服務器
stun:stun.l.google.com:19302
; - TURN服務器是
Coturn
在docker中以azure託管; - 信令服務器是一個定製的https://github.com/andyet/signalmaster,它使用express作爲web服務器
- 在客戶端使用JS,使用
simplewebrtc
作爲客戶端; - 在iOS設備上支持使用科爾多瓦插件 - https://github.com/eface2face/cordova-plugin-iosrtc
幾乎100%重現問題從LTE一個客戶到另一個上的Wi-Fi調用。在這種情況下,我們在兩臺設備上都會看到黑屏,但是,默認的bg顏色是白色的,所以WebRTC至少會發生一些情況。
做了什麼來解決問題:
- 審議Coturn日誌......有時候,我們看到「未經授權」的錯誤存在,但它很難說,如果他們有什麼影響;
- 檢查了Coturn的流量:在Wi-Fi到Wi-Fi的情況下,它很低,所以實際上建立了點對點連接。如果有LTE,我們可以看到大約40-120KiB /秒的負載(對於音頻/視頻而言這不算太低),所以TURN似乎有效;
- 檢查客戶端應用程序日誌,沒有什麼特別的;
請提出任何可能的研究方法或修復,以使WebRTC儘可能地可靠。
你確認你的輪到服務器真的有效嗎?見示例#2 [here](http://testrtc.com/webrtc-api-trace/) –
@PhilippHancke當沒有對等連接時,我們看到一些通過TURN服務器的流量,40-120KiB /秒。這個峯值與呼叫匹配。 –
40-120kbps對於音頻/視頻通話來說太低。此外,TURN是一個後備,因此直接連接時不會使用。檢查這個最簡單的方法是在連接結束時停止轉向服務器 - 如果通話繼續,則不使用TURN服務器 –