通過“網頁實時通信”(Web Real-Time Communication,簡稱WebRTC)實現(xiàn)實時語音對話或視頻對話,我們只需點擊一個鏈接即可開始談話,除了瀏覽器,無需其他額外的軟件,也不需要登錄服務。
目前Skype是最受歡迎的實時語音對話和視頻對話服務,但是WebRTC的出現(xiàn)可能改變這一切。Firefox目前已經集成了WebRTC客戶端,實現(xiàn)實時語音對話和視頻對話,就好像打開一個網頁一樣簡單。相比之下,使用Skype等其他的實時語音對話或視頻對話解決方案,我們需要安裝客戶端并建立一個用戶賬戶。
通過WebRTC實現(xiàn)實時語音對話和視頻對話不僅容易,同時WebBTC不需要登錄服務器,不需要使用任何服務賬戶,而且該技術允許兩個瀏覽器建立一個連接直接進行通信,無論是音頻還是視頻數據全部不需要經過服務器,雖然發(fā)起呼叫的過程用戶需要與服務器聯(lián)系,但是通信同樣是在加密的狀態(tài)下傳輸。因而,即使最挑剔的隱私和數據保護主義者也難以挑出什么毛病。
Google早在2011年已經在自己的瀏覽器上開始支持WebRTC,同時公布了實現(xiàn)WebRTC的源代碼,很快Chrome和Firefox都嵌入了WebRTC引擎。移動版本方面,目前占主導地位的是Android 5.0安裝的瀏覽器引擎的WebView 3.6,在瀏覽器中可以通過相應的JavaScript接口調用該引擎,即可實現(xiàn)WebRTC應用:通過GetUserMedia,軟件可以激活捕獲視頻和音頻信號源的設備,例如攝像頭和麥克風,通過RTCPeerConnection即可輕松呼叫并建立通信。
在各種瀏覽器紛紛支持WebRTC的同時,W3C的一個工作組也正在進行WebRTC的標準化工作,預計此項工作將在2015年年中完成。
WebRTC節(jié)約資源
實現(xiàn)WebRTC服務并不復雜,因為服務器需要做的只是讓對話的雙方彼此連接。建立呼叫的過程非常簡單:瀏覽器首先傳遞一個信號到WebRTC服務器,表示它希望開始一次對話。它將在通信被加密的情況下接收一個來自服務器的HTTPS鏈接,然后用戶可以將該鏈接提供給要對話的朋友。緊接著瀏覽器將詢問用戶是否允許訪問攝像頭和麥克風,如果它成功獲得用戶的授權,那么就會激活硬件并開始捕捉輸入的數據。
與此同時,瀏覽器確定用戶當前設備的IP地址是否可以通過互聯(lián)網訪問。因為有些電腦并沒有直接連接到互聯(lián)網上,而是通過路由器連接到互聯(lián)網的,所以需要通過重定向數據流(NAT)技術進行連接。對于類似的設備,為了找出這種重定向之前的IP地址,瀏覽器需要聯(lián)系“NAT會話傳輸應用程序”(Session Traversal Utilities for NAT,簡稱STUN)獲得真正可以通過互聯(lián)網連接上的IP地址。接下來,瀏覽器將把音頻和視頻編解碼器的端口號以及圖像分辨率等配置資料報告給WebRTC服務器。
加密的實時通信
如果進行對話的朋友點擊接收到的鏈接嘗試啟動對話,那么瀏覽器將通過WebRTC服務器獲得發(fā)起對話的用戶電腦的IP地址以及WebRTC服務相關的配置數據。瀏覽器將自動根據這些信息進行調整,瀏覽器中的3個引擎將開始啟動,兩個引擎負責優(yōu)化和壓縮音頻和視頻數據,另一個引擎負責傳輸數據,它將確保對話數據在順暢并且質量良好的情況下發(fā)送,并通過安全實時傳輸協(xié)議(Secure Real-time Transport Protocol,簡稱SRTP)發(fā)送加密的實時流。然而,如果網絡配置阻止STUN服務器從報告的IP地址直接進行連接,那么對話雙方無法建立直接的連接,瀏覽器將嘗試尋找另一種方式實現(xiàn)WebRTC通信。在這種情況下,將按照WebRTC標準的規(guī)定通過一個“NAT會話中繼”(Traversal Using Relay NAT,簡稱TURN)服務進行中轉。如果想確定自己的電腦和網絡配置是否能夠通過互聯(lián)網進行直接連接,那么我們可以通過類似netscan.co之類的在線監(jiān)測服務進行檢測。
Goolge和Mozilla正努力推動WebRTC,Chrome瀏覽器可以通過WebRTC與多位朋友對話,而Firefox則與西班牙電信的子公司合作推廣WebRTC。目前,只有蘋果仍然沒有加入WebRTC陣營,但是Safari瀏覽器有支持WebRTC的跡象。此外,iOS已經有一系列的WebRTC應用程序,同時也有用于Safari的WebRTC瀏覽器插件。
無論是應用程序還是Web服務,像talky.io和apeear.in這樣的WebRTC服務基本上都是免費的,與微軟明顯不是同路人。不過,作為Skype服務的所有者,微軟公司并不準備輕易認輸。相反,微軟為Internet Explorer瀏覽器開發(fā)了一個名為ORTC(對象實時通信)的技術,該技術與WebRTC類似,不同的是它采用了不同的編解碼器,與服務器通信的協(xié)議不同,最終有可能可以成為一種擴展了的WebRTC標準。一如往常,蘋果成為唯一無法支持WebRTC的瀏覽器。