本文中我们将一起分析各浏览器对WebRTC支持的情况。下图是我WebRTC设备清单中的一部分,我们就以这张图作为切入点。
下面我们来一个浏览器一个浏览器的分析。
Google Chrome
Chrome还是整个队伍的领军人物。有些人抱怨Google不按照规范运行WebRTC,可是话又说回来了,该遵循哪个规范呢?我们还是处在草案阶段,每个人都在为WebRTC规范做努力,但是现在还没有一个明确的规范。
我想表达的一个观点是:如果你的浏览器有超过十亿的下载量,那么你所改动的每一行代码都会造成某些功能发生错误。这意味要是想改变整个API以及WebRTC的表现层要难上加难。要花费大量的时间。
Mozilla Firefox
Mozilla通过自家的Firefox浏览器加入WebRTC阵营的时间可以说跟Google Chrome一样长。实际情况是,所有的功能也只是止步于可以工作这个层次。读者可以注意一下Mozilla WebRTC高级博客上面关于质量的内容。
Microsoft Edge
Microsoft Edge浏览器支持WebRTC 1.0,无论这里1.0指的是什么。它还支持ORTC。但是主要是ORTC,WebRTC的优先程度排在它后面。
我还是很费解微软这么做的理由是什么,我相信我不是唯一一个想不明白的人。
对于大部分的性能,微软只是在努力达到并保持与Chrome相同的表现。Edge浏览器的份额比较低,所以这是个聪明的做法—有公司开始在他们的产品中支持Edge浏览器,也有可能只是因为Edge版本的开发成本并不高。
Apple Safari
苹果刚刚加入WebRTC阵营中,宣布iOS 11和Safari 11中支持WebRTC。
但是苹果并不是全部支持,DataChannel现在并不能使用,视频编解码是H.264,而不是VP8。而且这点可能不会发生改变。
总的来说,WebRTC现在已经覆盖所有的现代浏览器了。
Microsoft Internet Explorer
在这里,WebRTC碰壁了。
是的,我们可以用微软的Edge浏览器,但是这款浏览器只能在Windows 10上使用。不过人们好像还是很乐意换用Chrome浏览器的。
当然如果能让IE也加入WebRTC大家庭是再好不过的事,但是可能永远不会发生。想要进行实时通信,我们可以使用插件或者独立的PC应用。
封闭的应用
当WebRTC不能用或者不能够满足需求时,你总是可以在封闭的应用中使用WebRTC技术。
对于iOS和Android来说,你可以下载WebRTC源代码,然后在它的上面编写自己的应用,或者使用WebView这样的操作系统。
对于电脑端来说,最通常的做法是使用Electron,一个围绕Chromium搭建的开源应用容器。它可以让你的网页应用编程一个电脑应用,并且可以跨Windows,Mac,和Linux系统使用。而且不管你用的是IE或者其他任何浏览器都可以,没有问题。