WebRTC在失去连接后重新连接(重新连接尝试)



我有一个正在运行的WebRTC JavaScript应用程序。问题是:如果在网络呼叫期间网络连接不好,则在WebRTC未尝试重新连接的情况下停止呼叫。

我想通过添加自动重新连接尝试系统来改进我的应用程序代码,然而,为了做到这一点,我需要了解一些关于WebRTC的理论(我认为这对许多其他开发人员来说非常有用(。

以下是我的问题:

  1. 如果网络不好,WebRTC是否具有尝试重新连接的本地功能;断开老虎钳";并呼叫";函数";从零开始新的连接?

  2. 如果事情不能神奇地完成,那么什么是正确的;断开老虎钳/s";以及";函数";重新连接尝试过程应该从哪个开始重新启动?是否有可以(或应该(从以前的连接中获取的内容?

  3. 我读过一个{iceRestart:true}参数。这应该用于第一次调用(然后WebRTC将通过尝试重新连接来神奇地处理断开连接(,还是应该仅在我的代码尝试重新连接时使用(第2次、第3次…(?

  4. connectionState";"断开"失败";以及";闭合的";这与试图重新连接坏网络有关吗?

  5. 如果没有重新连接的希望(即:互联网完全瘫痪(,避免尝试无限循环重新连接的最佳方法是什么?

  6. ice连接状态更改和onconnectionstatechange之间有什么区别?哪个与我的情况相关?

谢谢!

Luca

我能够通过实验找到(JavaScript(解决方案。。。

1(如果网络不好,WebRTC是否具有尝试重新连接的本地功能;断开老虎钳";并呼叫";函数";从零开始新的连接

是的,它在JavaScript中默认会这样做,除非您的代码通过额外的指令行主动终止调用来处理断开连接。

2(如果事情不能神奇地完成,那么什么是正确的;断开老虎钳/s";以及";函数";重新连接尝试过程应该从哪个开始重新启动?是否有可以(或应该(从以前的连接中获取的内容

事情已经在幕后发生了。如果代码终止了呼叫,可能是因为断开连接触发器(ICE连接状态=断开连接或连接状态=已断开连接(触发了您从某处复制/粘贴的应用程序中的一些附加代码。

3(我读过一个{iceRestart:true}参数。这应该用于第一次调用(然后WebRTC将通过尝试重新连接来神奇地处理断开连接(,还是应该仅在我的代码尝试重新连接时使用(第2次、第3次…(

在这种情况下没有用处。

4(connectionState";"断开"失败";以及";闭合的";这与试图重新连接坏网络有关吗

你必须监听connectionState=disconnected,其他的并不重要。

5(如果没有重新连接的希望(即:互联网完全关闭(,避免尝试无限循环重新连接的最佳方法是什么

没问题,WebRTC自动处理的重新连接在信令方面不会花费任何费用,因此,您可以尝试重新连接任意次数,如果速度太慢,用户最终会自行退出呼叫。

6(ONIConnectionStatechange和ONIConnection Statechange之间有什么区别?哪个与我的情况相关

在这种情况下没有区别,唯一的区别是冰状态的改变正好在连接状态改变之前被触发。

--

我希望这对某人有帮助!

最新更新