Design and Implementation of a Real Time Communication System Using WebRtc.pdf_第1頁
已閱讀1頁,還剩85頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、針對(duì)全世界在線通信問題,不同的公司提出了不同的解決方案,希望在滿足客戶基本通信需求的同時(shí),盡量保證客戶可以得到最好的資源。隨著通信系統(tǒng)越來越普及,很多問題和挑戰(zhàn)從不同的方面呈現(xiàn)出來:一方面是程序員開發(fā)程序的問題,另一方面是用戶體驗(yàn)的問題。這些問題的出現(xiàn),使得如何在保證用戶間最基礎(chǔ)的通訊功能的同時(shí)簡化用戶操作、提升用戶體驗(yàn),成為當(dāng)今在線通信問題研究的重點(diǎn)。
  本文嘗試以一個(gè)用戶的角度去考慮解決很多公司碰到的用戶體驗(yàn)問題,使用Web

2、Rtc這種新的技術(shù)去提供更簡單且快捷的通信,最后使用對(duì)等網(wǎng)絡(luò)這一應(yīng)用框架來解決用戶的隱私保護(hù)問題。
  在研究過程中,為了提高應(yīng)用的通信效率、保證用戶的通信體驗(yàn),本文使用WebRtc完成應(yīng)用程序的開發(fā)、集成和測(cè)試。WebRtc和HTML5的結(jié)合能夠在傳統(tǒng)的瀏覽器中實(shí)現(xiàn)實(shí)時(shí)的通信功能,同時(shí)WebRtc瀏覽器實(shí)時(shí)通信技術(shù)的新特性也有助于減少通信軟件對(duì)基礎(chǔ)設(shè)備的壓力以及對(duì)客戶端帶寬的要求(這個(gè)特性使得對(duì)等網(wǎng)絡(luò)中點(diǎn)對(duì)點(diǎn)的通信功能成為可能)

3、。正如文中所闡述的,新技術(shù)的主要優(yōu)勢(shì)體現(xiàn)在用戶體驗(yàn)和為應(yīng)用程序服務(wù)器減壓方面,WebRtc的API標(biāo)準(zhǔn),可以使通信內(nèi)容的創(chuàng)建和游戲、視頻、音樂、新聞等媒體信息變的更大眾化和分散化。此外,該技術(shù)的應(yīng)用范圍也非常廣泛,期待JavaScript的開發(fā)人員可以使WebRTC在更多的應(yīng)用程序上得到使用。本文將突出介紹WebRtc對(duì)應(yīng)用程序功能的重大作用以及本系統(tǒng)與大部分常見軟件相比的優(yōu)點(diǎn)和缺點(diǎn)。
  WebRTC(Web Real-Time

4、 Communications)是一種使不同瀏覽器客戶端間共享音頻、視頻流和數(shù)據(jù)的對(duì)等實(shí)時(shí)通信技術(shù)。作為一套新型的通信應(yīng)用框架,WebRTC提供任何瀏覽器共享應(yīng)用數(shù)據(jù)、執(zhí)行對(duì)等通信的能力,在通信過程中,瀏覽器不需要安裝插件或者第三方軟件。WebRTC組件支持JavaScript API使用接口,相關(guān)接口包括媒體流API(音頻或視頻數(shù)據(jù)流)、節(jié)點(diǎn)連接API(它允許兩個(gè)或多個(gè)用戶進(jìn)行點(diǎn)對(duì)點(diǎn)鏈接)和數(shù)據(jù)信道API(使用戶能夠進(jìn)行實(shí)時(shí)游戲、文字

5、聊天和文件傳輸?shù)炔僮鞯膽?yīng)用接口)。WebRTC的主要接口被多種瀏覽所集成,其中包括Mozilla,Chrome等瀏覽器,這些接口可以幫助瀏覽器在沒有中心服務(wù)器的前提下實(shí)現(xiàn)直接相互通信,這樣的特性使瀏覽器就能夠在互聯(lián)網(wǎng)上發(fā)送對(duì)等的消息(這些消息包括數(shù)據(jù)對(duì)象,文件和視頻流等)。與此同時(shí),WebRtc也被多種成熟的聊天系統(tǒng)所應(yīng)用,其中十分著名的系統(tǒng)包括:谷歌環(huán)聊Google Hangout、雅虎通Yahoo Messenger、舊版的Face

6、book messenger、Wechat(只有離線模式下才應(yīng)用WebRTC技術(shù))等。
  除WebRTC外,本應(yīng)用系統(tǒng)也是用到了多種JS庫來輔助實(shí)時(shí)通信功能的實(shí)現(xiàn),相關(guān)的JS庫包括:Free switch;SIP JS;EasyRTC;P JS;PeerJs,RTCMultiConnection JS等。以上類庫促進(jìn)了瀏覽器聊天應(yīng)用程序的發(fā)展,基于這些類庫,開發(fā)人員可以更加簡便快捷地實(shí)現(xiàn)程序功能,使系統(tǒng)在滿足用戶溝通需求的同時(shí)為

7、用戶帶來更好的使用體驗(yàn)。另外,由于這些類庫都是開源的,任何人都可以通過使用這些類庫對(duì)應(yīng)用程序進(jìn)一步進(jìn)行完善,因此應(yīng)用程序?qū)?huì)變得更加簡單、易于維護(hù)。
  另外,本系統(tǒng)也使用到了MongoDB、HTML5、Node JS、ANDROID和CSS3等互聯(lián)網(wǎng)新技術(shù)。MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,旨在為Web應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案;Node JS是一個(gè)基于Chrome JavaScript運(yùn)行時(shí)建立的平臺(tái)

8、,用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用;CSS3是CSS技術(shù)的升級(jí)版本,CSS3語言開發(fā)是朝著模塊化發(fā)展的,這些模塊包括盒子模塊、列表模塊、文字特效、多欄布局等。這些技術(shù)都將運(yùn)用到實(shí)時(shí)通信應(yīng)用程序中(如本地存儲(chǔ)和緩存瀏覽器等),這些技術(shù)不但幫助開發(fā)者減少了任務(wù)工作量,同時(shí)也給相關(guān)的用戶提供了更快更好的服務(wù)。結(jié)合上述技術(shù)的特點(diǎn)和JavaScript編程語言的優(yōu)勢(shì),本文開發(fā)了這個(gè)點(diǎn)對(duì)實(shí)時(shí)通信應(yīng)用,并且通過JavaScript的相關(guān)特

9、性使應(yīng)用屏幕大小自適應(yīng)化。
  最終的應(yīng)用程序是基于EasyRTC庫進(jìn)行開發(fā)的,為了利用WebRTC技術(shù)的優(yōu)點(diǎn),系統(tǒng)使用Node Js編程語言和Web Storm IDE進(jìn)行開發(fā)。系統(tǒng)的需求分析是基于校園環(huán)境進(jìn)行的,通過問卷的方式調(diào)查了用戶關(guān)于視聽通訊系統(tǒng)的認(rèn)識(shí)和意見,調(diào)查結(jié)果顯示系統(tǒng)的簡潔性和易用性是影響用戶使用體驗(yàn)的重要指標(biāo),因此在設(shè)計(jì)過程中主要對(duì)系統(tǒng)的簡便性進(jìn)行了評(píng)估,以便滿足大部分用戶的使用需求。
  本文所設(shè)計(jì)并實(shí)

10、現(xiàn)的應(yīng)用程序主要包括三個(gè)部分,即:
  (1)通話模塊:這個(gè)模塊確保用戶有能力從不同瀏覽器發(fā)起和接受視頻電話;同時(shí),我們會(huì)確保所有的瀏覽器環(huán)境都支持和集成該模塊,對(duì)于已發(fā)布的版本,將通過自動(dòng)升級(jí)更新該模塊的特性。
  (2)文本模塊:這個(gè)模塊可確保用戶通過點(diǎn)對(duì)點(diǎn)的方式(與通話模塊類似)使用信道傳輸數(shù)據(jù)(這個(gè)服務(wù)只能在有信號(hào)的情況下使用)。
  (3)文件傳輸模塊:這個(gè)模塊主要用來完成瀏覽器間的文件傳輸,該模塊支持不同類

11、型的文件,包括二進(jìn)制數(shù)據(jù)、文檔以及任何套接字傳輸協(xié)議所支持的文件格式。需要注意的是,該服務(wù)和上述兩個(gè)服務(wù)一樣,只能在有信號(hào)的情況下使用。
  本系統(tǒng)使用對(duì)等網(wǎng)絡(luò)架構(gòu)來實(shí)現(xiàn)基本的在線通信功能。這種通信架構(gòu)集成了瀏覽器通過通信通道與服務(wù)器的通信能力,同時(shí)該架構(gòu)是對(duì)等的而不是集中式的,這種架構(gòu)的層次結(jié)構(gòu)取決于開發(fā)商(可以為兩層或三層),根據(jù)這種層次結(jié)構(gòu)的設(shè)計(jì),開發(fā)商可以選擇哪一層作為應(yīng)用層來滿足客戶的需求。覆蓋網(wǎng)絡(luò)可以看成是一個(gè)全連通的

12、虛擬網(wǎng)絡(luò),對(duì)等網(wǎng)絡(luò)一般都在物理層實(shí)現(xiàn)這種虛擬覆蓋網(wǎng)絡(luò),并且對(duì)等網(wǎng)絡(luò)的結(jié)點(diǎn)與底層物理層不能分開。對(duì)等網(wǎng)絡(luò)架構(gòu)在TCP/IP層進(jìn)行數(shù)據(jù)交換,但這種架構(gòu)設(shè)計(jì)通過邏輯鏈接也允許數(shù)據(jù)在應(yīng)用層直接通信,這里的每一個(gè)邏輯連接都可以對(duì)應(yīng)到物理層的一個(gè)路徑。覆蓋網(wǎng)絡(luò)用于索引和同伴發(fā)現(xiàn),使P2P系統(tǒng)可以獨(dú)立于物理網(wǎng)絡(luò)拓?fù)?。基于覆蓋網(wǎng)絡(luò)節(jié)點(diǎn)相互間的連接,根據(jù)覆蓋網(wǎng)絡(luò)內(nèi)結(jié)點(diǎn)的交互方式以及結(jié)點(diǎn)的存儲(chǔ)方式,我們可以把這種網(wǎng)絡(luò)結(jié)構(gòu)分為結(jié)構(gòu)化和非結(jié)構(gòu)化(或兩者之間的混

13、合)。存對(duì)等網(wǎng)絡(luò)中,客戶使用資源的同時(shí)也可以分享自己的資源。與客戶機(jī)一服務(wù)器系統(tǒng)不同,隨著訪問用戶的越來越多,對(duì)等網(wǎng)絡(luò)會(huì)增加更多的可訪問內(nèi)容資源供用戶使用。這種自適應(yīng)的特性是對(duì)等網(wǎng)絡(luò)的主要優(yōu)勢(shì)之一,因?yàn)樗鼮闇p少了用戶的安裝成本和運(yùn)行成本。
  另外,參與者之間的合作也是對(duì)等網(wǎng)絡(luò)取得成功的關(guān)鍵,要想充分發(fā)揮這種優(yōu)勢(shì),需要有大量的用戶節(jié)點(diǎn)提供資源。但在當(dāng)前大部分的對(duì)等網(wǎng)絡(luò)使用者中通常都包含了大量“自私”用戶,這些用戶只利用他人的資源而

14、從不把自己的資源主動(dòng)分享。這種情況會(huì)對(duì)網(wǎng)絡(luò)造成很嚴(yán)重的影響,在某些情況下甚至?xí)?dǎo)致網(wǎng)絡(luò)的崩潰。所以系統(tǒng)需要對(duì)這些自私的用戶進(jìn)行相應(yīng)的懲罰,例如限制他們享受資源的大小或者降低他們的貢獻(xiàn)值。由于網(wǎng)絡(luò)的不對(duì)稱性,研究網(wǎng)絡(luò)的社會(huì)屬性具有極大的挑戰(zhàn),為了鼓勵(lì)甚至強(qiáng)制用戶節(jié)點(diǎn)貢獻(xiàn)資源,大量的激勵(lì)機(jī)制被提出。本文所設(shè)計(jì)的應(yīng)用程序中包含了一個(gè)對(duì)等網(wǎng)絡(luò)的信令服務(wù)器,該信令服務(wù)器主要是用于統(tǒng)計(jì)用戶的貢獻(xiàn)值,并不直接參與用戶間的通信交流過程,系統(tǒng)以此種方式激

15、勵(lì)用戶的參與。在統(tǒng)計(jì)過程中,信令服務(wù)器給現(xiàn)有的連接分配唯一的ID便于它們之間的通信,并使用Node JS對(duì)相應(yīng)的激勵(lì)機(jī)制進(jìn)行實(shí)現(xiàn)。
  最后,本系統(tǒng)的存儲(chǔ)結(jié)構(gòu)與通常的聊天軟件有所不同(雖然一些聊天軟件的通信模塊也使基于WebRTC開發(fā)的,但它的聊天記錄存儲(chǔ)在一個(gè)數(shù)據(jù)庫中,用戶可以根據(jù)日期順序來查詢聊天記錄),基于一種分布式的存儲(chǔ)模式,本文設(shè)計(jì)的應(yīng)用系統(tǒng)實(shí)現(xiàn)了存儲(chǔ)結(jié)構(gòu)的“去中心化”,通過這種特性用戶的隱私問題可以得到有效的保護(hù)。

16、r>  隨著移動(dòng)互聯(lián)網(wǎng)的不斷發(fā)展,傳統(tǒng)的通信軟件不再能夠滿足用戶的體驗(yàn)需求,同時(shí)通信中的隱私保護(hù)問題也越來越受到用戶的關(guān)注。本文針對(duì)目前在線通信網(wǎng)絡(luò)系統(tǒng)中存在的操作不便、用戶體驗(yàn)差、隱私保護(hù)不到位等問題,提出了一種基于WebRTC技術(shù)及點(diǎn)對(duì)點(diǎn)對(duì)等網(wǎng)絡(luò)應(yīng)用框架的在線通信應(yīng)用平臺(tái),該平臺(tái)可以應(yīng)用于用戶生活中的方方面面。為了提升通信系統(tǒng)的實(shí)時(shí)性,應(yīng)用使用到了WebRTC、MongoDB、HTML5、CSS3等多種新型互聯(lián)網(wǎng)技術(shù),希望在滿足用戶

17、實(shí)時(shí)通信基本需求的同時(shí),盡可能增強(qiáng)用戶的使用體驗(yàn)。另一方面,隱私保護(hù)問題也是本文所重點(diǎn)關(guān)注的問題之一,系統(tǒng)使用點(diǎn)對(duì)點(diǎn)對(duì)等網(wǎng)絡(luò)框架來構(gòu)建出一個(gè)分布式的通信系統(tǒng),在該系統(tǒng)中,聊天記錄和文件僅保存在瀏覽器本地而不保存在服務(wù)器中,這將創(chuàng)建一個(gè)托管環(huán)境來保證用戶的隱私問題。最后本文針對(duì)具體的系統(tǒng)網(wǎng)絡(luò)應(yīng)用環(huán)境設(shè)計(jì)了相應(yīng)的激勵(lì)機(jī)制,以此來保證對(duì)等網(wǎng)絡(luò)中用戶的參與。
  點(diǎn)對(duì)點(diǎn)在線通信系統(tǒng)是一個(gè)新興的行業(yè)應(yīng)用,它讓web瀏覽器具有實(shí)時(shí)通訊的功能,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論