我有一个正在运行的WebRTC JavaScript应用程序。问题是:如果在网络呼叫期间网络连接不好,则在WebRTC未尝试重新连接的情况下停止呼叫。
我想通过添加自动重新连接尝试系统来改进我的应用程序代码,然而,为了做到这一点,我需要了解一些关于WebRTC的理论(我认为这对许多其他开发人员来说非常有用(。
以下是我的问题:
-
如果网络不好,WebRTC是否具有尝试重新连接的本地功能;断开老虎钳";并呼叫";函数";从零开始新的连接?
-
如果事情不能神奇地完成,那么什么是正确的;断开老虎钳/s";以及";函数";重新连接尝试过程应该从哪个开始重新启动?是否有可以(或应该(从以前的连接中获取的内容?
-
我读过一个{iceRestart:true}参数。这应该用于第一次调用(然后WebRTC将通过尝试重新连接来神奇地处理断开连接(,还是应该仅在我的代码尝试重新连接时使用(第2次、第3次…(?
-
connectionState";"断开"失败";以及";闭合的";这与试图重新连接坏网络有关吗?
-
如果没有重新连接的希望(即:互联网完全瘫痪(,避免尝试无限循环重新连接的最佳方法是什么?
-
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之间有什么区别?哪个与我的情况相关
在这种情况下没有区别,唯一的区别是冰状态的改变正好在连接状态改变之前被触发。
--
我希望这对某人有帮助!