前言
需要學(xué)會的硬技能
1恢筝、學(xué)會翻墻
2、學(xué)會用WireShark抓包
3屑墨、音視頻相關(guān)知識
一桐腌、WebRTC概述?
WebRTC(Web Real-Time Communication網(wǎng)頁實時通信技術(shù))是一系列為了建立端到端文本或者隨機數(shù)據(jù)的規(guī)范,標(biāo)準(zhǔn)裁蚁,API和概念的統(tǒng)稱矢渊。這些對等端通常是由兩個瀏覽器組成,但是WebRTC也可以被用于在客戶端和服務(wù)器之間建立通信連接枉证,或者在任何其他可以實施WebRTC標(biāo)準(zhǔn)的設(shè)備之間進行通信建立矮男。WebRTC是一個開源項目,可在瀏覽器中實現(xiàn)無插件的實時通信(RTC)室谚。它包括用于高質(zhì)量通信的基本構(gòu)建模塊毡鉴,例如用于語音和視頻聊天應(yīng)用的網(wǎng)絡(luò)崔泵,音頻和視頻組件。這些組件在瀏覽器中實現(xiàn)時猪瞬,可以通過JavaScript API訪問憎瘸,使開發(fā)人員能夠輕松實現(xiàn)自己的RTC Web應(yīng)用程序。
一次WebRTC點對點通信包含四個過程:找到對方陈瘦、協(xié)商幌甘、建立連接、開始通信痊项。
舉個不恰當(dāng)?shù)??锅风,小紅和小明談戀愛了,上課的時候他們想傳紙條說話鞍泉?這個時候一般有以下幾個步驟:
1皱埠、(找到對方)找到教室內(nèi)對方的位置
2、(協(xié)商)可能有些同學(xué)會惡作劇咖驮,替換了紙條或在紙條中篡改內(nèi)容边器,所以他們倆協(xié)定了沒有風(fēng)險的情況才通信
3、(建立連接)通過同學(xué)傳遞紙條建立傳遞路徑
4托修、(開始通信)可以互相傳紙條通信了
二饰抒、WebRTC的目標(biāo)是什么?
WebRTC旨在為開發(fā)社區(qū)提供開放诀黍,高質(zhì)量的實時通信技術(shù)袋坑。在WebRTC之前,這種類型的RTC技術(shù)僅適用于能夠負擔(dān)昂貴的許可費用或通過AdobeFlash等專有插件的大型公司眯勾。WebRTC將為新一波視頻枣宫,語音和數(shù)據(jù)Web應(yīng)用程序打開大門。目前國內(nèi)各大一二線音視頻相關(guān)的公司都有做基于WebRTC的音視頻研發(fā)吃环。
三也颤、WebRTC支持哪些平臺?
windows郁轻、linux翅娶、mac、iOS好唯、Android竭沫、Web,幾乎主流平臺都支持了骑篙,跨平臺的強大蜕提。
四、WebRTC開發(fā)現(xiàn)狀
WebRTC的開發(fā)現(xiàn)狀其實并不像大多數(shù)人所想象的那么簡單靶端,人們普遍的認為WebRTC的代碼是開源的所以花很少的時間就能將其集成到項目中去谎势,并且Google這么大的公司的產(chǎn)品質(zhì)量一定沒問題凛膏。但是在項目進行中,大家都會發(fā)現(xiàn)脏榆,WebRTC并不是一塊Google白送到面前的肉猖毫。首先,編譯WebRTC的源碼就是一個比較大的挑戰(zhàn)须喂,搭建其復(fù)雜的編譯環(huán)境往往會遇到很多意想不到的問題鄙麦,導(dǎo)致當(dāng)初計劃用幾個星期的時間來搞定項目,卻發(fā)現(xiàn)這幾個星期連編譯都沒搞定镊折。還有,WebRTC中很多的參數(shù)都是由GIPS公司的工程師們依靠經(jīng)驗所設(shè)定的值介衔,這就會出現(xiàn)卡頓恨胚、延時、回聲炎咖、丟包赃泡、多人視頻不穩(wěn)定等問題,并且由于公網(wǎng)的穩(wěn)定性或機型適配等外在因素乘盼,以上問題在項目上線后會更加嚴重升熊。總而言之绸栅,WebRTC雖然提供了一套音視頻實時通訊的解決方案级野,但是在實際應(yīng)用中,由于網(wǎng)絡(luò)傳輸粹胯、設(shè)備適配以及多方通話上都存在很多問題蓖柔,效果并不理想。