本文中我們將一起分析各瀏覽器對WebRTC支持的情況。下圖是我WebRTC設備清單中的一部分,我們就以這張圖作為切入點(diǎn)。

下面我們來(lái)一個(gè)瀏覽器一個(gè)瀏覽器的分析。
Google Chrome
Chrome還是整個(gè)隊伍的領(lǐng)軍人物。有些人抱怨Google不按照規范運行WebRTC,可是話(huà)又說(shuō)回來(lái)了,該遵循哪個(gè)規范呢?我們還是處在草案階段,每個(gè)人都在為WebRTC規范做努力,但是現在還沒(méi)有一個(gè)明確的規范。
我想表達的一個(gè)觀(guān)點(diǎn)是:如果你的瀏覽器有超過(guò)十億的下載量,那么你所改動(dòng)的每一行代碼都會(huì )造成某些功能發(fā)生錯誤。這意味要是想改變整個(gè)API以及WebRTC的表現層要難上加難。要花費大量的時(shí)間。
Mozilla Firefox
Mozilla通過(guò)自家的Firefox瀏覽器加入WebRTC陣營(yíng)的時(shí)間可以說(shuō)跟Google Chrome一樣長(cháng)。實(shí)際情況是,所有的功能也只是止步于可以工作這個(gè)層次。讀者可以注意一下Mozilla WebRTC高級博客上面關(guān)于質(zhì)量的內容。
Microsoft Edge
Microsoft Edge瀏覽器支持WebRTC 1.0,無(wú)論這里1.0指的是什么。它還支持ORTC。但是主要是ORTC,WebRTC的優(yōu)先程度排在它后面。
我還是很費解微軟這么做的理由是什么,我相信我不是唯一一個(gè)想不明白的人。
對于大部分的性能,微軟只是在努力達到并保持與Chrome相同的表現。Edge瀏覽器的份額比較低,所以這是個(gè)聰明的做法—有公司開(kāi)始在他們的產(chǎn)品中支持Edge瀏覽器,也有可能只是因為Edge版本的開(kāi)發(fā)成本并不高。
Apple Safari
蘋(píng)果剛剛加入WebRTC陣營(yíng)中,宣布iOS 11和Safari 11中支持WebRTC。
但是蘋(píng)果并不是全部支持,DataChannel現在并不能使用,視頻編解碼是H.264,而不是VP8。而且這點(diǎn)可能不會(huì )發(fā)生改變。
總的來(lái)說(shuō),WebRTC現在已經(jīng)覆蓋所有的現代瀏覽器了。
Microsoft Internet Explorer
在這里,WebRTC碰壁了。
是的,我們可以用微軟的Edge瀏覽器,但是這款瀏覽器只能在Windows 10上使用。不過(guò)人們好像還是很樂(lè )意換用Chrome瀏覽器的。
當然如果能讓IE也加入WebRTC大家庭是再好不過(guò)的事,但是可能永遠不會(huì )發(fā)生。想要進(jìn)行實(shí)時(shí)通信,我們可以使用插件或者獨立的PC應用。
封閉的應用
當WebRTC不能用或者不能夠滿(mǎn)足需求時(shí),你總是可以在封閉的應用中使用WebRTC技術(shù)。
對于iOS和Android來(lái)說(shuō),你可以下載WebRTC源代碼,然后在它的上面編寫(xiě)自己的應用,或者使用WebView這樣的操作系統。
對于電腦端來(lái)說(shuō),最通常的做法是使用Electron,一個(gè)圍繞Chromium搭建的開(kāi)源應用容器。它可以讓你的網(wǎng)頁(yè)應用編程一個(gè)電腦應用,并且可以跨Windows,Mac,和Linux系統使用。而且不管你用的是IE或者其他任何瀏覽器都可以,沒(méi)有問(wèn)題。
