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服务器 –