2015年11月11日,由聲網(wǎng)(Agora)與美國 TMC 聯(lián)合主辦的亞太區首屆(WebRTC)網(wǎng)絡(luò )實(shí)時(shí)通信大會(huì )在北京中關(guān)村皇冠假日酒店舉行,聲網(wǎng)(Agora)創(chuàng )始人趙斌在開(kāi)場(chǎng)致辭中表示,“WebRTC是互聯(lián)網(wǎng)行業(yè)在實(shí)時(shí)通信領(lǐng)域影響深遠的一項努力,它的目標是通過(guò)互聯(lián)網(wǎng)為每個(gè)用戶(hù)創(chuàng )建完整的實(shí)時(shí)音視頻通話(huà)能力,同時(shí)還大幅降低了開(kāi)發(fā)人員實(shí)現實(shí)時(shí)音視頻通信功能的門(mén)檻。”WebRTC 大會(huì )已經(jīng)由 TMC 在美國連續舉辦了三年,這是首次走進(jìn)亞洲。
會(huì )上,InfoQ 對 WebRTC 之父 Daniel C.Burnett 進(jìn)行了專(zhuān)訪(fǎng),聲網(wǎng)(Agora)副總裁、北美業(yè)務(wù)負責人王驊補充了部分問(wèn)題,以下是專(zhuān)訪(fǎng)實(shí)錄。(注:Daniel 在訪(fǎng)談中的觀(guān)點(diǎn)僅代表他本人及其在 W3C 所做的工作。)
InfoQ:JavaScript 之父 Brendan Eich(Mozilla 前 CTO)曾說(shuō)過(guò),“WebRTC is a new front in the long war for an open and unencumbered web.”,您怎么理解他的這句話(huà)?
Daniel C.Burnett:在網(wǎng)絡(luò )上如何自由地溝通一直存在著(zhù)很大的空間。谷歌想把網(wǎng)頁(yè)版應用的體驗做的和 Native 應用一致,但是他們很快發(fā)現,谷歌自身的產(chǎn)品諸如 Google Docs、Gmail 等并沒(méi)有解決通訊的問(wèn)題,也就是說(shuō)它們不能控制麥克風(fēng)、攝像頭以及人與人之間的通訊。所以我同意 Brendan Eich 的說(shuō)法,這對互聯(lián)網(wǎng)和 Web 來(lái)說(shuō)是一件大事。
InfoQ:據了解,WebRTC 聯(lián)盟曾故意遺漏信令標準來(lái)避免沖突,但此舉造成后來(lái)廠(chǎng)商使用各不相同的協(xié)議,包括 SIP、WebSockets 以及 HTTP 協(xié)議。您認為這個(gè)問(wèn)題應該怎么解決?
Daniel C.Burnett:哈哈,我認為這是 W3C 做的最好的決定。有的廠(chǎng)商想強制把 SIP 作為瀏覽器通訊的信令,但是這樣的話(huà),你想用 XMPP 或者 Jingle 就不可能了。與其抄襲過(guò)時(shí)的電話(huà)網(wǎng)絡(luò )用 SIP 協(xié)議,不如把這一部分留白,讓大家自己選擇何種實(shí)現。有人詬病 SIP 信令層的借口是 SIP 層沒(méi)有很好的 JavaScript 庫。顯然這個(gè)說(shuō)法是錯誤的,事實(shí)上有很多很好的 JavaScript 庫可以用。所以,如果你一定要用 SIP 做信令層,有很多很好的 JavaScript 庫供你選擇,但是你不會(huì )因此受限制,這才是互聯(lián)網(wǎng)真正該有的樣子。
InfoQ:隨著(zhù)企業(yè)云通信市場(chǎng)的發(fā)展,許多廠(chǎng)商和開(kāi)發(fā)者并沒(méi)有等 WebRTC 最終定稿便投入到產(chǎn)品研發(fā)中,這對未來(lái) WebRTC 標準的制定有哪些不利的影響?在您看來(lái)有沒(méi)有像 Flash 之于 HTML4 那樣的產(chǎn)品或者技術(shù)來(lái)促成 WebRTC 標準的制定?
Daniel C.Burnett:早期吃螃蟹的人,他們的反饋對 WebRTC 標準的制定也是至關(guān)重要的,這對未來(lái)標準的制定是很有幫助的。互聯(lián)網(wǎng)本來(lái)就是快速迭代的過(guò)程,產(chǎn)品要不斷試錯,我們 WebRTC 標準的制定也遵循這樣的規律。
HTML5 的多媒體標準分好幾部分,WebRTC 是其中的一部分。一個(gè)好消息是,WebRTC 的標準制定比較超前,很多 HTML5 其他工作組的標準制定者對這一方面的工作十分關(guān)心,最終的結果是 HTML5 和 WebRTC 會(huì )很好地共存,兩者之間的溝通其實(shí)是無(wú)縫的。舉個(gè)例子好了,目前 HTML5 標準里沒(méi)有很好地定義音頻應該輸出到麥克風(fēng)還是揚聲器,現在 WebRTC 已經(jīng)作出了一些可選擇的方案,HTML5 和 WebRTC 正在密切協(xié)作以改進(jìn)這個(gè)標準,其結果是二者會(huì )很相似,于開(kāi)發(fā)者而言將不再會(huì )面臨兩種標準的困擾。
InfoQ:開(kāi)發(fā)者對實(shí)現通信受既有概念的束縛是對 WebRTC 和云通信的真實(shí)挑戰,比如企業(yè)中的電話(huà)會(huì )議依然是很受信賴(lài)的形式。怎么改變這種局面?
Daniel C.Burnett:有些協(xié)議和標準的制定者認為,標準或者說(shuō)規范越少、越簡(jiǎn)單越好。但 WebRTC 標準制定者認為還是應該稍微多給定一些標準和規范,于是我們多給了一些,但這多給出的部分依然不夠,這也是為什么我寫(xiě)了《WebRTC權威指南》這本書(shū)。
WebRTC 的目的就是打破常規的人們對電話(huà)的固有認識,把人和人之間的互動(dòng)、溝通加入到人們日常工作流、任意的APP當中;而不是在這個(gè)APP中內置一個(gè)電話(huà)功能,這種思想是錯誤的。正確的思想是,通訊應該是一種功能,而不是一種應用。也就是說(shuō),讓打電話(huà)不再只是打電話(huà),他就是人與人之間自然的交流。比如,電話(huà)不再是一個(gè)物理的設備,現在的智能可穿戴設備將來(lái)都有可能取代打電話(huà)這件事,而且未來(lái)的通訊不止是人跟人之間,有可能是人跟物之間發(fā)生。
王驊補充道:再比如,視頻通訊不應該被視為“我能看到你的臉”,人們看到的可能是一個(gè)大的數據流——通過(guò)大數據的挖掘,你的心跳、體溫、臉色等等都可以通過(guò)攝像頭傳輸過(guò)來(lái)。這跟傳統的電話(huà)的模式有根本的區別。
InfoQ:在從事 WebRTC 開(kāi)發(fā)的廠(chǎng)商中,與運營(yíng)商合作是一個(gè)選擇,打造更強大的 SDK 和更富彈性的服務(wù)也是一種選擇。您怎么評價(jià)這兩種策略的未來(lái)發(fā)展?您對 WebRTC 技術(shù)在中國的發(fā)展有哪些期望?
Daniel C.Burnett:我是 WebRTC 標準的制定者,對商業(yè)模式的話(huà)題并不方便也不適合回答。
王驊:如果從市場(chǎng)的角度來(lái)看,提供 SDK 的公司只是給開(kāi)發(fā)者提供了一種便利,因此很難生存。用戶(hù)需要的是提供一個(gè)穩定、可靠的點(diǎn)對點(diǎn)通訊服務(wù)。以美國市場(chǎng)為例,現有的20多家提供 SDK 的廠(chǎng)商已經(jīng)有7、8家被收購了,這種收購不是以大的價(jià)值被收購的,而是活不下去才不得不被收購。
在國內市場(chǎng)方面,國內瀏覽器廠(chǎng)商都不大,很多廠(chǎng)商使用的都是同樣的開(kāi)源代碼,我們很驚喜地發(fā)現有些代碼寫(xiě)一遍在各家的瀏覽器上都可以運行。在微軟慢慢往 WebRTC 這個(gè)方向靠攏之后市場(chǎng)方面的問(wèn)題應該不大。這的確是一個(gè)比較對大家利好的事情,從運營(yíng)商的角度來(lái),他們主要是做基礎建設和賣(mài)數據流,在這些數據上會(huì )衍生出很多公司和各種豐富的服務(wù),最基本的可能是音視頻服務(wù),但遠遠不止這些。只要政策上面沒(méi)有太多的干預,這個(gè)行業(yè)將會(huì )有很大的爆發(fā)。
InfoQ:目前支持 WebRTC 的瀏覽器有 Chrome、Firefox、Opera 以及在此基礎上的衍生產(chǎn)品。阻礙了 WebRTC 跨瀏覽器支持的因素有哪些?微軟的 IE 瀏覽器(微軟一直在推進(jìn)自己的 WebRTC 版本)和蘋(píng)果的 Safari 不支持 WebRTC 的主要原因是什么?
Daniel C.Burnett:過(guò)去的幾年里我被無(wú)數次問(wèn)到這個(gè)問(wèn)題。我不為微軟和蘋(píng)果工作,我很難知道他們是怎么想的。
然而,微軟在我們最初在討論 WebRTC 標準的時(shí)候,Skype 里的確有一些有遠見(jiàn)的人愿意參與,但是當時(shí)正值微軟收購 Skype 時(shí)期,這些人都不能說(shuō)話(huà),因此微軟沒(méi)能參與進(jìn)來(lái);等收購結束他們能參與進(jìn)來(lái)的時(shí)候,W3C 已經(jīng)決定使用另外一套方案了。Skype 的人再想走另外一條道路的時(shí)候,已經(jīng)基本不可能了,所以最終微軟選擇的是一個(gè)非標準的 ORTC。
最初微軟推出 ORTC 是想跟 WebRTC 分庭抗禮,但從去年開(kāi)始兩邊有了一定的溝通,在 WebRTC 1.0 版之后他們能互相兼容,慢慢在標準上會(huì )互相靠攏。微軟的新瀏覽器 Edge 已經(jīng)支持了 ORTC,有跡象標明微軟會(huì )在 JavaScript 庫方面與 WebRTC 做兼容,從這個(gè)角度來(lái)看很有可能未來(lái) Chrome、IE、FireFox 會(huì )站在一起。
至于蘋(píng)果,沒(méi)有人知道蘋(píng)果到底要做什么直到他們 release。在過(guò)去的一年里,我們偶爾發(fā)現會(huì )有蘋(píng)果的人來(lái)旁聽(tīng)了一下 WebRTC 的標準討論。最近我們發(fā)現蘋(píng)果在招聘 WebRTC 的開(kāi)發(fā)崗位。所以大家還是很希望蘋(píng)果能在兼容性方面能做點(diǎn)什么的。
要猜大公司什么時(shí)候決定支持什么樣的東西是很難的,但我認為谷歌、Mozilla 和微軟都站在了一起,這對蘋(píng)果來(lái)說(shuō)是個(gè)威脅,蘋(píng)果如果不參與進(jìn)來(lái),就有可能被孤立。蘋(píng)果內部可能有一些考慮,這些我就不得而知了。
王驊:最近亞馬遜、思科、谷歌、英特爾、微軟、Mozilla 和 Netflix 組建了開(kāi)放媒體聯(lián)盟,這對蘋(píng)果會(huì )形成一定的壓力,我們也希望看到蘋(píng)果會(huì )支持 WebRTC。