中文字幕无码久久精品,13—14同岁无码A片,99热门精品一区二区三区无码,菠萝菠萝蜜在线观看视频高清1

您當(dāng)前的位置是:  首頁 > 新聞 > 專家觀點 >
 首頁 > 新聞 > 專家觀點 >

如何著手學(xué)習(xí)WebRTC開發(fā)

2017-06-09 13:54:00   作者:Tsahi Levent-Levi   來源:聲網(wǎng)Agora   評論:0  點擊:


  說到WebRTC,沒準(zhǔn)兒你使用它已有些時日,當(dāng)然也可能完全沒有用過。或許你已經(jīng)了解過AppRTC,亦或是基于github中的一段代碼創(chuàng)建了一個分支,并放到了自己的服務(wù)器上運行。但是現(xiàn)在呢,您可能會感覺到自己已經(jīng)止步于此,無法成為一名正兒八經(jīng)的WebRTC開發(fā)人員。
\
  WebRTC開發(fā)人員可以說形形色色,但論起出身淵源,通常無外乎以下兩類:
  1. 10年前做過VoIP開發(fā)人員(這可能意味著他們配置過Asterisk安裝實例、編寫過自己的RTP堆棧,諸如此類)
  2. 本身即是Web開發(fā)人員(具體從事的往往是在付費主題的基礎(chǔ)上實現(xiàn)WordPress網(wǎng)站,但也可能是構(gòu)建像Facebook之類的全球各種社交網(wǎng)站所使用的后端)
  而難題在于,WebRTC介乎于VoIP和Web這兩種全然不同的領(lǐng)域之間。
\
  我本人又屬于哪一類呢?其實也是VoIP開人員出身。我為一款A(yù)SN.1 PER編/解碼器編寫過自己的無遞歸實現(xiàn)代碼,采用的是在靜態(tài)內(nèi)存中運行的方式。還在多種不同的操作系統(tǒng)上線性擴展過UDP/TCP套接字實現(xiàn)代碼。也使用C代碼進(jìn)行過多線程處理。更從事過如今的大多數(shù)開發(fā)人員甚至都無法理解的一些底層工作。雖然這些都是不錯的起點,但對于過渡到WebRTC并沒有起到實質(zhì)性的幫助作用。
  關(guān)鍵并不在于WebRTC本身,而在于了解在開發(fā)VoIP產(chǎn)品時與開發(fā)互聯(lián)網(wǎng)Web應(yīng)用程序時所用到的不同思維模式和方法。此外,還需能夠?qū)W習(xí)新技術(shù)和新的思考方式。
  本篇博文并非要引領(lǐng)你完成整個學(xué)習(xí)歷程,但對你制定學(xué)習(xí)方案會有助益。在本文中,我們將一起探討現(xiàn)在可以從哪三個方面著手來從VoIP或Web開發(fā)人員搖身變成資深的WebRTC開發(fā)人員。
  哪些是你不懂的?
  首先要著手做的事情就是弄清楚你需要學(xué)習(xí)什么。一些人可能認(rèn)為,要成為WebRTC開發(fā)人員,只需要懂HTML、CSS和些許JavaScript。再從github上找到一個采用WebRTC的項目,安裝到自己的服務(wù)器上運行即可。這樣就大功告成了!
  這自然是一個不錯的著手點,但采用WebRTC進(jìn)行開發(fā)并非只是學(xué)點兒JavaScript那么簡單。也不是學(xué)會Node.js就行的。
  要想讓自己真正稱得上一名WebRTC開發(fā)人員,你需要從以下諸多方面著手學(xué)習(xí):
  • WebRTC API:要成為WebRTC開發(fā)人員,顯而易見需達(dá)到這項要求
  • 前端開發(fā):HTML、CSS和JavaScript
  • 后端開發(fā):Node.js或其他某種現(xiàn)代異步開發(fā)平臺
  • 網(wǎng)絡(luò):TCP、UDP、HTTP、WebSocket以及介乎于這些概念之間的任何概念
  • 編碼解碼器和媒體處理:如何設(shè)計和實現(xiàn)代碼、采用哪些算法和技術(shù)通過SRTP將媒體經(jīng)由網(wǎng)絡(luò)發(fā)送出去。如果懂Simulcast和SVC,那就更好了。
  • 服務(wù)器端媒體處理:需要了解可用來支持組呼、實況直播和錄制等功能的不同技術(shù)
  • 故障排查和監(jiān)控工具:至少要學(xué)會如何閱讀webrtc-internals轉(zhuǎn)儲文件并了解ICE故障
  • 常用框架:了解現(xiàn)有的流行框架以及這些框架適用的情況。例如,對Jitsi、Kurento和Janus有一定的了解也是有益無害的
  掌握了上述技能和知識,你就能夠開發(fā)幾乎所有的實時通信產(chǎn)品。如此多的主題看起來可能令人望而生畏,不過我在下文中分享了一些資源,讓您可以相對較快地了解上述每個主題。此外需要說明的是,這些主題你不必樣樣精通,但作為一名WebRTC開發(fā)人員,您必須對其中的每一個主題都有基本的了解。當(dāng)然,我自知我對上述主題也并非門門精通……
  至此你已經(jīng)知道了自己需要懂哪些方面,接下來我們就看看可以通過哪三種首選方式來學(xué)習(xí)所需的知識和技能。
\
  1. 通過閱讀資料來學(xué)習(xí)WebRTC開發(fā)
  無論是哪個主題,要想增長知識,其中一個最佳的方式就是閱讀和緊密關(guān)注業(yè)界專家撰寫的博文和教程。在這方面WebRTC也不例外。
  雖然WebRTC博客數(shù)量不多,但你依然需要在這方面多加關(guān)注,充分發(fā)掘有限博文中的價值。挑選幾個優(yōu)質(zhì)博客進(jìn)行關(guān)注即可。我之所以盡量訂閱所有博客,主要是因為我的職業(yè)要求我盡可能充分了解WebRTC市場,而且我還需要打理WebRTC周刊博客。總結(jié)起來,對于WebRTC開發(fā)方面的核心內(nèi)容,我密切關(guān)注且必讀必懂的就只有以下三個主要博客:
  • webrtcHacks:一言蔽之,提供了有關(guān)WebRTC的優(yōu)質(zhì)內(nèi)容供開發(fā)人員參考……
  • Mozilla的“推進(jìn)WebRTC”:Mozilla最近開設(shè)了一個專門講解WebRTC的新博客。博客內(nèi)容質(zhì)量一流,所含的信息也很實用。具體涵蓋了與WebRTC相關(guān)的一些小問題,并提供了一些非常實用的代碼段
  • Philipp Hancke:如果說有誰對WebRTC無所不知的話,那非Philipp莫屬。他在WebRTC以及瀏覽器行為分析方面有系統(tǒng)性的研究。每當(dāng)他撰寫并發(fā)布博文,我最終都會收獲至少一項新知識。
  • WebRTC周刊:沒錯。這是我和Kranky共同打理的一個博客。這個博客為您提供WebRTC的最新發(fā)展脈搏,所以關(guān)注它可以讓您更快地找到其他人撰寫的內(nèi)容,特別是那些讓我苦等很久才偶而發(fā)布一次內(nèi)容的人。
  您不妨挑選幾個想要關(guān)注的博客進(jìn)行訂閱。不必對它們發(fā)布的所有內(nèi)容都細(xì)細(xì)研讀,但一定要定期閱讀那些會讓您大開眼界、甚至?xí)岩勺约菏欠袷呛细耖_發(fā)人員的技術(shù)文章。我采取的就是這種方法,現(xiàn)在我已經(jīng)不再自視為開發(fā)人員。你很可能會不由自主地采取下一步驟:打開一個代碼編輯器,試著運行您所閱讀的文章中公布的代碼段。
  2. 通過參加課程來學(xué)習(xí)WebRTC開發(fā)
  閱讀有關(guān)WenRTC的內(nèi)容是確保您與時俱進(jìn)的必要之舉,必須持之以恒,特別是考慮到WebRTC的發(fā)展日新月異,且目前還沒有穩(wěn)定的規(guī)范發(fā)布出來。要想真正地快速培養(yǎng)新技能,參加一些正式培訓(xùn)是可取的做法。
  網(wǎng)上已經(jīng)開設(shè)了幾門WebRTC培訓(xùn)課程,都不難找到。我觀看過的那些課程重點講解WebRTC API方面,這也是著手學(xué)習(xí)WebRTC的良好切入點。不過難題在于,WebRTC仍未標(biāo)準(zhǔn)化,因此很多方面變化太快,導(dǎo)致此類內(nèi)容往往難以跟上最新發(fā)展的腳步。
  在這些課程中,我猜有兩個地方可以讓您全面了解WebRTC:
  • Google的WebRTC代碼實驗室:這是Google開設(shè)的一門基礎(chǔ)入門課程,介紹如何使用WebRTC。這門課程將為您講解WebRTC的基本概念,引導(dǎo)您完成簡單的首次概念驗證并快速獲得結(jié)果。
  • WebRTC學(xué)院:WebRTC學(xué)院的WebRTC課程著重講解WebRTC     API及其使用方式。對于急著直接使用WebRTC進(jìn)行開發(fā)的人員,建議從這項資源著手學(xué)習(xí)。
  • 高級WebRTC體系結(jié)構(gòu):這是我在本網(wǎng)站上開設(shè)的一門課程。在此課程中,我決定不以WebRTC API作為講解重點,直接跳過這方面的內(nèi)容;并嘗試更多地講解后端方面,讓學(xué)員具備全面的后端構(gòu)建能力,從而可以自行構(gòu)建產(chǎn)品體系結(jié)構(gòu)。
  • Kranky   Geek:對于視覺元素類型,我建議觀看由Kranky Geek整理的主題(我也是該團(tuán)隊的一員)。您會觀看到就具體WebRTC開發(fā)主題提供的優(yōu)質(zhì)內(nèi)容。
  除了WebRTC培訓(xùn)之外,務(wù)必還要觀看一些其他的課程,例如Udemy、Codecademy或Pluralsight等網(wǎng)站上提供的全棧Web開發(fā)培訓(xùn)或Node.js開發(fā)課程。
\
  有沒有什么書可讀?
  幾個月來我一直有個困擾揮之不去:已經(jīng)有一年多時間沒有關(guān)于WebRTC的新書出版了。
  我記得上次有WebRTC新書出版還是2015年6月的事情。
  現(xiàn)在,如果您仍然習(xí)慣于通過讀書來學(xué)習(xí)新知,可以查看WebRTC圖書一覽,時至今日它依然有效。
  如果您的開發(fā)工作與Web瀏覽器有關(guān),不要忘了閱讀高性能瀏覽器網(wǎng)絡(luò)(特別是您打算使用WebRTC打造自己的信號系統(tǒng)時)。
  3. 通過動手實踐來學(xué)習(xí)WebRTC開發(fā)
  在實際項目中付諸實踐并撰寫心得有助于進(jìn)一步鞏固閱讀和了解的內(nèi)容
  閱讀有關(guān)WebRTC開發(fā)的內(nèi)容會讓您保持思維敏銳。學(xué)習(xí)WebRTC開發(fā)課程則有助于您培養(yǎng)新技能和透徹了解這項技術(shù)。但要想真正成長為一名開發(fā)人員,您需要找到機會有效運用學(xué)到的所有知識和技能。
  如何才能有效地運用學(xué)到的知識和技能呢?我能想到的方式有四種:
  • 開發(fā)個人項目——可以是博客、個人作品集、個人愛好網(wǎng)站等?梢赃x擇一些能夠讓您絞盡腦汁,在開發(fā)過程中需要不斷思索解決方案的個人項目。我想Muaz     Khan在這方面是做得最好的。Brian Ho最近分享了關(guān)于在客戶端/服務(wù)器Web游戲中使用WebRTC的經(jīng)驗心得,我也非常喜歡。
  • 為付費客戶開發(fā)產(chǎn)品——有太多的服務(wù)提供商都在尋找WebRTC開發(fā)能手,數(shù)量之多可能超乎您的想象。
  • 撰寫文章談?wù)勛约簩W(xué)習(xí)的新技能并將它們發(fā)布在自己的博客上,最好提交到webrtcHacks。要想確保自己真正理解了某個主題,撰寫一篇關(guān)于該主題的教程可以說是最好的辦法。
  • 成為WebRTC專業(yè)人士——掌握了必備知識并積累了一些經(jīng)驗后,您可能想要加入一家正在積極使用WebRTC開發(fā)產(chǎn)品的WebRTC外包公司。不妨聽聽Germán     Goldenstein是如何說的——作為開發(fā)人員,能有他這樣的職業(yè)經(jīng)歷可以說十分難得。這篇文章也讓我想明白了自己為何如此喜歡開發(fā)工作和與開發(fā)人員協(xié)同合作。
  今后還需要從哪些方面著手學(xué)習(xí)?
  我們這個行業(yè)有一個悖論。
  一方面,WebRTC極為簡單(可以對比一下在WebRTC問世前相同的開發(fā)項目需要的工作量)。但同時,懂得如何使用它的資深開發(fā)人員卻又不多。與一些正在尋求WebRTC人才的雇主聊聊,您就知道找到合適的人有多難。有時,他們在與懂得如何開發(fā)網(wǎng)站或移動應(yīng)用但對WebRTC一無所知的外包供應(yīng)商合作后,感到非常不滿意,所以多數(shù)雇主最終都選擇了在內(nèi)部培養(yǎng)WebRTC開發(fā)人員。
  不過,如果您不滿足于從github中復(fù)制粘貼Hello World WebRTC概念的實現(xiàn)代碼,希望不僅僅將WebRTC當(dāng)做一種愛好,而是要成為一名真正的WebRTC開發(fā)人員,您需要制定一份學(xué)習(xí)方案并嚴(yán)格按照方案學(xué)習(xí)。
  方案中應(yīng)包含三項核心的學(xué)習(xí)活動:閱讀資料、參加課程和動手實踐。只要能夠在這三個方面持之以恒,用不了多久您就會從業(yè)余愛好者搖身變成一名專業(yè)的WebRTC開發(fā)人員。
  當(dāng)然,你也可以直接使用Agora SDK,從編解碼到服務(wù)端的都涵蓋了。

專題