但是,这并不完美!
原因有两点:
第一点:这就是为什么我这么早就对此发表博客。我提出了3个规范说明,希望这些说明可以消除对Promise.all和“stable”测试的依赖。其实归根到底是用一种与执行rollback略有不同的API,其用于以防闪退的方式设置一个新的端描述。在某种程度上它也是重启ICE的方式,且不会干扰negotiationneeded。
第二点:关键是要编写一次代码,以抽象出该状态机。一旦正确完成操作,那么我们就不必再担心这种复杂性会影响该应用程序的其余部分。可以在应用上方标明“让行端”。现在只需在对等端连接上调用方法,而无需再担心此状态机。
如果您想知道为什么WebRTC无法自动处理此问题,很大一部分原因是有些人想要一个高级API,而其他人想要一个低级API。开发组无法生成适合所有人的“一刀切”产品。具体来说,如果不借助应用程序去解决当前体系结构中的问题,需要WebRTC定义自己的信令通道方式并将其强加给每个人,而这并不能满足大家不同的需求。
好消息是,高级别的API可以跳过这一步进行编写。这篇文章会向大家说明一种编写方法。
为什么要追求完美?