




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
鴻1, 松1, 鑫2, 斌(1.法國(guó)電信研發(fā)中心100190;2.中國(guó)電 100035)摘要:WebRTC具有開(kāi)放標(biāo)準(zhǔn)、簡(jiǎn)單易擴(kuò)展、開(kāi)源免費(fèi)等特點(diǎn)。除了通過(guò)調(diào)用WebRTC提供的標(biāo)準(zhǔn)WebAPI方便快速開(kāi)發(fā)Web應(yīng)用外,還可以利用WebRTC的實(shí)現(xiàn)庫(kù)開(kāi)發(fā)高質(zhì)量的實(shí)時(shí)音通信移動(dòng)客戶端應(yīng)用??偨Y(jié)了WebRTC的主要技術(shù)特點(diǎn),對(duì)設(shè)計(jì)和開(kāi)發(fā)基于WebRTC技術(shù)的移動(dòng)客戶端應(yīng)用和Web應(yīng)用進(jìn)行技術(shù)分析,給出基于WebRTC技術(shù)的移動(dòng)客戶端應(yīng)用、Web應(yīng)用和服務(wù)平臺(tái)的參考設(shè)計(jì)。:Web實(shí)時(shí)通信;移動(dòng)客戶端;Web應(yīng)用;JavaScript會(huì)話建立協(xié)議;STUN;TURN:10.3969/j.issn.1000ResearchandDesignofandWebApplicationBasedonWebRTCTechnologyLinHong1,WangSong1,YangXin2,Fu(1. R&DBeijingCentre,Beijing100190,2.BeijingResearchInstituteofCo.,.,Beijing100035,:WebRTCtechnologyhassomegoodcharacteristicsofopenandstandardized,simpleandextendable,opensourcedand.TheWebapplicationscanbeeasilyandquicklydevelopedbycallingtheWebAPIwhichareprovidedbyWebRTCtechnologyandbeingstandardized.Besides,thesandapplicationsofrealtimeaudiovisualcommunicationswithhighqualitycanalsobedevelopedbyfullyexploitingtheWebRTCcoreimplementationlibrary.ThemaintechnicalfeaturesofWebRTCtechnologyweresummarized.Basedonthesummary,thetechnicalysiswasgivenabouthowtodesignanddevelopthe applicationandWebapplicationbasedonWebRTCtechnology.Thereferencedesignandtheimplementationofthesapplications,theWebapplicationandtheservicetformwhichsupportsthesetwokindsoftheapplicationswereprovided.:WebRTC,,Webapplication,JavaScriptsessionestablishmentprotocol,STUN,引WebRTC[1](Webreal-timecommunication,Web實(shí)時(shí)通信)是一項(xiàng)在瀏覽器內(nèi)部進(jìn)行實(shí)時(shí)和音頻數(shù)據(jù)通信的技術(shù),是HTML5[2]標(biāo)準(zhǔn)之一。Web2.0在過(guò)去的幾年里將可編程性和交互性嵌入瀏覽器,而不只是顯示靜態(tài)內(nèi)容和格
式。但是,Web技術(shù)還不能夠應(yīng)付實(shí)時(shí)雙向的語(yǔ)音和通信需要。使用如Adobe的flash瀏覽器插件有明顯的靈活性和性能等方面的限制WebRTC技術(shù)可以開(kāi)發(fā)具有實(shí)時(shí)音通信的Web應(yīng)用,利用其實(shí)現(xiàn)還可以開(kāi)發(fā)出具有實(shí)時(shí)音通信的移動(dòng)應(yīng)用。在這些基礎(chǔ)應(yīng)用上,結(jié)合其他的先進(jìn)技術(shù),可以開(kāi)發(fā)出創(chuàng)新的Web和移動(dòng)應(yīng)用WebRTC主要技術(shù)特點(diǎn)如圖1所示[1],在WebRTC系統(tǒng)架構(gòu)中包括面向Web應(yīng)用開(kāi)發(fā)者的WebAPI和庫(kù)。WebRTC庫(kù)包含語(yǔ)音引擎(voiceengine)、視頻引擎(engine)、傳輸層、會(huì)話管理(sessionmanagement)和C++API,它們都內(nèi)嵌在瀏覽器里Web應(yīng)用開(kāi)發(fā)者可以調(diào)用標(biāo)準(zhǔn)的JavaScriptAPI開(kāi)發(fā)基于WebRTC的應(yīng)用,主要包括:GetUserMediaAPI用于控制本地設(shè)備的接入,如設(shè)備上的頭和麥克風(fēng),也叫MediaStreamAPI;PeerConnectionAPI用于管理在兩個(gè)瀏覽器之間雙向媒體流的發(fā)送和接收,通過(guò)JSEP(JavaScriptsessionestablishmentprotocol,JavaScript會(huì)話建立協(xié)議)[3]實(shí)現(xiàn)媒體參數(shù)的協(xié)商,這是WebRTC最典型的P2P應(yīng)用場(chǎng)景;DhannelsAPI用于瀏覽器之間發(fā)送和接體的數(shù)據(jù)流。在WebRTC庫(kù)中,語(yǔ)音引擎實(shí)現(xiàn)了從聲卡到網(wǎng)絡(luò)整個(gè)音頻鏈的技術(shù)框架,包括對(duì)語(yǔ)音的聲學(xué)處理以及iAC、iLBC和Opus音頻編解碼的實(shí)現(xiàn)。引擎實(shí)現(xiàn)從頭到網(wǎng)絡(luò)、從網(wǎng)絡(luò)到屏幕整個(gè) 鏈的技術(shù)框架,還包括圖像的處理和VP8編的實(shí)現(xiàn)。會(huì)話控制是為支持呼叫建立和管理的抽象會(huì)話層,應(yīng)用開(kāi)發(fā)者決定如何實(shí)現(xiàn)具體協(xié)議。C++AI是瀏覽器廠商實(shí)現(xiàn)
WebAPI所需的函數(shù)集在傳輸層中,WebRTC利用ICE[4]/STUN[5]/TURN[6]機(jī)制來(lái)建立不同類型網(wǎng)絡(luò)間的呼叫連接,解決NAT穿越問(wèn)題。WebRTC通過(guò)RTP傳輸音頻和 流,通過(guò)SCTP實(shí)現(xiàn)傳輸可靠數(shù)據(jù)流。90%左右NAT類型均可以利用STUN獲得對(duì)方的公網(wǎng)IP地址和端口,實(shí)現(xiàn)穿越,不需要媒體服務(wù)器進(jìn)行中繼。只有10%左右NAT為對(duì)稱性NAT,可以采用在互聯(lián)網(wǎng)上部署TURN中繼服務(wù)器的方式實(shí)現(xiàn)NAT穿越。可見(jiàn),WebRTC技術(shù)不同于傳統(tǒng)的SIP/IMS網(wǎng)絡(luò)部署,在不考慮等因素的情況下,大大降低了服務(wù)器的負(fù)載和部署成本。WebRTC技術(shù)主要優(yōu)點(diǎn)如下。開(kāi)放的標(biāo)準(zhǔn)WebRTC是HTML5標(biāo)準(zhǔn)之一,也是由W3C和IETF標(biāo)準(zhǔn)組織共同定義的一個(gè)開(kāi)放的標(biāo)準(zhǔn)。W3C的WebRTC工作組[7WebWebAPI[8]用于開(kāi)發(fā)具有語(yǔ)音、和數(shù)據(jù)功能Web應(yīng)用。IETFRTCWeb工作組[9]定義了瀏覽器之間流交互的協(xié)議和規(guī)范,但沒(méi)有定義呼叫控制協(xié)議。3GPP也正在制定WebRTCIMS之間互聯(lián)需求(TR23.701[10])的標(biāo)準(zhǔn)。簡(jiǎn)單和易擴(kuò)展性WebRTC提供了一個(gè)簡(jiǎn)單可擴(kuò)展的技術(shù)框架和方案選型,方便開(kāi)發(fā)者通過(guò)互聯(lián)網(wǎng)提供語(yǔ)音、和數(shù)據(jù)等多種應(yīng)用和服務(wù)。WebRTC本身并不定義同用戶之間的交互方式、媒體流的路由方式、用戶認(rèn)證、呼叫協(xié)議和控制以及同其他網(wǎng)絡(luò)的互聯(lián)方式等。這些課題由開(kāi)發(fā)者和服務(wù)提供商根據(jù)不同的業(yè)務(wù)場(chǎng)景和技術(shù)需要進(jìn)行靈活選擇和配置。來(lái)自的廣泛支WebRTC技術(shù)獲得來(lái)自的支持。除了瀏覽器廠商,如、Mozilla和Opera外,其他大公司在WebRTC上也表現(xiàn)積極,如運(yùn)營(yíng)商AT&T、efonica,設(shè)備商AlcaLucent、Ericsson、Cisco、Avaya、AcmePacket等以及來(lái)自從企業(yè)通信到游戲等領(lǐng)域的眾多開(kāi)發(fā)者和初創(chuàng)公司。許多圍繞WebRTC技術(shù)的工作在、歐洲和亞洲,特別是在中國(guó)和韓國(guó),都在積極進(jìn)行之中。同運(yùn)營(yíng)商網(wǎng)絡(luò)的互聯(lián)互通WebRTC的一些應(yīng)用場(chǎng)景可以作為運(yùn)營(yíng)商既有和網(wǎng)絡(luò)的有效補(bǔ)充,比如通過(guò)WebRTC提供IMS服務(wù)、會(huì)議和呼叫中心的升級(jí)、企業(yè)統(tǒng)一通信業(yè)務(wù)的改進(jìn)等以及一些垂直業(yè)務(wù)的擴(kuò)充,如M2M、教育和醫(yī)療等。和其他技術(shù)的結(jié)合WebRTC技術(shù)容易和其他的先進(jìn)技術(shù),如虛擬現(xiàn)實(shí)、手勢(shì)控制、人臉識(shí)別等技術(shù)結(jié)合,實(shí)現(xiàn)Web應(yīng)用的快速mash-up開(kāi)發(fā)?;赪ebRTC技術(shù)的移動(dòng)客戶端和Web應(yīng)用的技術(shù)基于WebRTCWebAPI能夠比較容易開(kāi)發(fā)支持實(shí)時(shí)語(yǔ)音通信及數(shù)據(jù)可靠通信的Web應(yīng)用以及基于這種基本能力的其他Web應(yīng)用。但是這種Web應(yīng)用還存在一些實(shí)際問(wèn)題。比如,如何在瀏覽器中通知用戶來(lái)電問(wèn)題,一般情況下,瀏覽器處理呼入總是比出站連接更難。這種情況在上更復(fù)雜,來(lái)電通知可能需要常規(guī)的鈴聲,而不是簡(jiǎn)單的提示;如果用戶已經(jīng)處于一個(gè)CS或者VoIP通話,如何提示和區(qū)別這個(gè)WebRTC的來(lái)電是需要探討的問(wèn)題。另外,用戶如果在呼叫中刷新了網(wǎng)這時(shí)JavaScript執(zhí)行的上下文發(fā)生重置,會(huì)話中間狀態(tài)會(huì)丟失。這些是Web應(yīng)用實(shí)現(xiàn)實(shí)時(shí)通信需要解決的問(wèn)題。除了利用WebAPI開(kāi)發(fā)Web應(yīng)用外,利用WebRTC核心庫(kù)也可以開(kāi)發(fā)出具有實(shí)時(shí)通信功能的移動(dòng)客戶端。WebRTC庫(kù)具有如下特點(diǎn)。支持多種開(kāi)源音編音頻編中支持iSAC、iLBC、Opus等免費(fèi)音頻編
碼和VP8視頻編解碼。iSAC是一種用于VoIP和流音頻的寬帶和超寬帶音頻編器。iLBC是用于VoIP和流音頻的窄帶語(yǔ)音編器。其標(biāo)準(zhǔn)由IETFRFC3951[11]和RFC3952[12]定義。Opus支持持續(xù)和可變碼流編。其標(biāo)準(zhǔn)由IETFRFC6716[13]定義。VP8基于WebM項(xiàng)目[],非常適合低時(shí)延的通信。具有強(qiáng)大的音引WebRTC語(yǔ)音引擎支持自適應(yīng)抖動(dòng)控制算法和語(yǔ)音分組丟失隱藏算法,用于緩解網(wǎng)絡(luò)抖動(dòng)和分組丟失引起的影響,使其能夠快速且高解析度地適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境,確保音質(zhì)優(yōu)美且緩沖時(shí)延最小,提高語(yǔ)音通話質(zhì)量;支持基于軟件的信號(hào)處理來(lái)消除回聲,實(shí)時(shí)地去除手麥克風(fēng)到的回聲;支持基于軟件的信號(hào)處理來(lái)抑制噪背景噪聲。動(dòng)態(tài)抖動(dòng)緩存和錯(cuò)誤隱藏算法,用于緩解網(wǎng)絡(luò)抖動(dòng)和分組丟失引起的負(fù)面影響。引擎支持動(dòng)態(tài)抖動(dòng)控制,緩解抖動(dòng)和分組丟失引起的影響,有助于提升整個(gè)視頭抓取圖像的噪聲。支持多移動(dòng)平臺(tái)WebRTC平Android、iOS、WindowsPhone等技術(shù)獲業(yè)界認(rèn)可WebRTC語(yǔ)音引擎如GlobalIPSolutions公司[15]。許多大公司的產(chǎn)品,如Skype、QQ、WebEX、AOL等都曾采用該公司的IP語(yǔ)音引擎和相關(guān)產(chǎn)所以,通過(guò)增加用戶管理、會(huì)話協(xié)議控制和用戶交互界面等工作,結(jié)合這個(gè)WebRTC庫(kù)就可以開(kāi)發(fā)跨平臺(tái)的實(shí)時(shí)音通信的移動(dòng)互聯(lián)網(wǎng)應(yīng)用。美國(guó)上市公司Vonage,WebRTCAndroid和iOS移動(dòng)平臺(tái)的客戶端應(yīng)用,減少對(duì)私有和付費(fèi)技術(shù)方案的依賴。基于WebRTC技術(shù)的移動(dòng)客戶端和Web應(yīng)用的參考設(shè)計(jì)使用統(tǒng)一的支持移動(dòng)客戶端和Web應(yīng)用。提供一組標(biāo)準(zhǔn)的客戶端API,方便移動(dòng)客戶端和Web應(yīng)用調(diào)用,實(shí)現(xiàn)和前端應(yīng)用的松耦合。目前大部分基于WebRTC的服務(wù)都部署在GAE(Appengine)上,用戶之間P2P通道的建立以及呼叫信令的傳輸,都是通過(guò)GAE完成。但是GAE環(huán)境國(guó)內(nèi)不能。筆者基于開(kāi)源軟件項(xiàng)目部署自己的應(yīng)用服務(wù)器,實(shí)現(xiàn)了基于WebRTC的服務(wù)。WebRTC沒(méi)有定義用戶呼叫管控制協(xié)議SIP、XMPP[16]、其他標(biāo)準(zhǔn)協(xié)議或者完全私有協(xié)議都可以用于呼叫控制協(xié)議SIP是最常用的VoIP,廣泛用于企業(yè)的IPPBX和運(yùn)營(yíng)IMS平臺(tái)XMPP/Jingle[17]用于呼叫控制,主要基于以下幾點(diǎn)考慮:XMPP本身SIP更簡(jiǎn)單客戶端協(xié)議棧實(shí)現(xiàn)和JavaScript實(shí)現(xiàn)更輕量;XMPP后臺(tái)處理不需要安裝類似SBC網(wǎng)關(guān)做NAT穿越;沒(méi)有同IMS網(wǎng)絡(luò)互通的需求等。下面分別詳細(xì)描述基于WebRTC技術(shù)的移動(dòng)客戶端Web應(yīng)用和支持它們的的設(shè)計(jì)及具體實(shí)現(xiàn)移動(dòng)客戶端設(shè)計(jì)與實(shí)現(xiàn)基于WebRTC開(kāi)發(fā)實(shí)現(xiàn)了移動(dòng)客戶端微呼,這是一款支持好友之間進(jìn)行免費(fèi)語(yǔ)音、文字通信的創(chuàng)新應(yīng)用。通過(guò)調(diào)用提供的客戶端API和服務(wù)平臺(tái)交互,包括用戶注冊(cè)、登錄、訂閱用戶狀態(tài)、獲取用戶狀態(tài)等。通過(guò)XMPP實(shí)現(xiàn)用戶之間語(yǔ)音通信時(shí)的呼叫建立、信令協(xié)商、會(huì)話管理和SDP[18]協(xié)商;通過(guò)XMPP實(shí)現(xiàn)用戶之間的文字消息的傳遞;通過(guò)RTP傳送語(yǔ)音媒體流,RTCP媒體流傳送質(zhì)量;通過(guò)STUN和TURN協(xié)議來(lái)建立不同類型網(wǎng)絡(luò)間的媒體鏈接,實(shí)現(xiàn)P2P的流傳輸,減少中間媒體服務(wù)器的要求。WebRTC移動(dòng)客戶端基AndroidSDK進(jìn)行開(kāi)發(fā)集成了libjingle和WebRTC兩個(gè)開(kāi)源項(xiàng)目,其中l(wèi)ibjingle庫(kù)提供XMPP的處理和解析等功能,WebRTC庫(kù)提供了語(yǔ)音編碼和聲學(xué)處理等功能同時(shí)客戶端也集成了友盟SDK的統(tǒng)計(jì)功能和SDK的相關(guān)功能。軟件架構(gòu)如圖2所
圖 WebRTC移動(dòng)客戶端的軟件架 com.orange.weihu.service:服務(wù)模塊 com.orange.weihu.util:通用輔助模塊WebRTC移動(dòng)客戶端模塊間相互依賴關(guān)系如圖3所示。其中,activity包封裝了用戶交互相關(guān)的邏輯,包括認(rèn)證登錄管理和瀏覽展現(xiàn),用戶好友關(guān)系和WebRTC好友關(guān)系的、文本消息的收發(fā)和記錄管理、通話的發(fā)起和接收以及的管理。service包封裝底層通話相關(guān)庫(kù)的邏輯,包括共享庫(kù)的加載及生命周期管理、開(kāi)機(jī)啟動(dòng)和信息獲取等功能。data包封裝了需要持久化的核心邏輯,包括相關(guān)信息、好友關(guān)系相關(guān)信息、文本消息相關(guān)信息和相關(guān)信息。其中邏輯分層結(jié)構(gòu)如下packagecom.orange.weihu.activity用戶交互相關(guān)的邏輯模塊。 mon:通用數(shù)據(jù)輔助模塊packageco ponent:自定義相關(guān)視圖組件模塊。 com.orange.weihu.data:數(shù)據(jù)模塊packagecom.orange.weihu.jni:JNI(Javanative調(diào)用接口層 :網(wǎng)絡(luò)處理模塊WebRTC客戶端中各個(gè)模塊調(diào)用的基本流程如圖4所示。用戶點(diǎn)擊呼叫按鈕,activity向service傳遞消息,service通過(guò)JNI調(diào)用libjingle,libjingle設(shè)置完成WebRTC相關(guān)功能,發(fā)起呼叫。用戶通過(guò)賬戶登錄,獲得好友信息及微博詳情,如果沒(méi)有在微呼服務(wù)器注冊(cè)過(guò),則進(jìn)行微呼賬戶建立。啟動(dòng)相關(guān)服務(wù),加載底層類庫(kù),建立呼叫相關(guān)網(wǎng)絡(luò)連接,在線狀態(tài)。選擇在線好友, 服務(wù)器,獲得好友連接信息,建立通話連接。4WebRTC移動(dòng)客戶端的模塊調(diào)用基本流程Web應(yīng)用設(shè)計(jì)與實(shí)現(xiàn)WebRTC的實(shí)時(shí)語(yǔ)音視頻通信Web應(yīng)用在無(wú)需任何插件的情況下,實(shí)現(xiàn)了瀏覽器之間P2P的音頻和通信,提供了Web用戶注冊(cè)、登錄、獲取好友在線狀態(tài)以及與好友進(jìn)行實(shí)時(shí)語(yǔ)音和通話等功能。Web應(yīng)用部署在應(yīng)用服務(wù)器Openfire19上,通的方式連接并訪問(wèn)Openfire服務(wù)器。Openfire服務(wù)器提供了HTTP綁定的功能,通過(guò)7070端口,接WebHTTP請(qǐng)求,Web
應(yīng)用基于開(kāi)源JavaScript庫(kù)Strophe,是基于JavaScript的可擴(kuò)展通信和表示協(xié)議(XMPP)客戶端庫(kù)主要功能包括用戶登錄和登出、并發(fā)送IM消息、服務(wù)器推送的presence更新信息、服務(wù)器轉(zhuǎn)發(fā)的IQ信息。Jingle協(xié)議是XMPP的擴(kuò)展,用于規(guī)范兩個(gè)XMPP客戶端之間的信令協(xié)議。SDP信令流程和Jingle信令流程的不同之處在于P2P通道地址和端口的發(fā)送時(shí)間,Jingle信令在發(fā)起呼叫時(shí),便會(huì)協(xié)商P2P通道地址和端口;而SDP信令將編解碼協(xié)商和P2P通道地址協(xié)商分為兩個(gè)信令發(fā)送,在發(fā)送發(fā)起呼叫信令后,便馬上發(fā)送P2P通道地址和端口。WebRTC中的信令是基于SDP格式的,而Openfire應(yīng)用服務(wù)器是基于XMPP的,信令格式基于Jingle協(xié)議,所以需要對(duì)信令格式進(jìn)行轉(zhuǎn)換,包括SDP信令和Jingle信令的互換,需要JSEP中的SDP格式映射Jingle格式[20]。設(shè)計(jì)與實(shí)現(xiàn)基于XMPP,并以XML數(shù)據(jù)元流式來(lái)傳輸數(shù)據(jù),為移動(dòng)客戶端和PC客戶端提供基于WebIM傳輸、VoIP呼叫、信令傳輸、用戶管理和用戶關(guān)系維護(hù)、好友狀態(tài)presence信息推送以及日志統(tǒng)計(jì)等功能。的邏輯架構(gòu)如圖5XMPP服務(wù)器、STUN服務(wù)器和TURN服務(wù)器。其中XMPP服務(wù)器用于即時(shí)消息轉(zhuǎn)發(fā)和實(shí)時(shí)通信信令傳輸,STUN服務(wù)器用于NAT穿越,TURN服務(wù)器用于流的轉(zhuǎn)發(fā)。Openfire是基于XMPP、跨平臺(tái)的即時(shí)消息服務(wù)器,支持服務(wù)器到服務(wù)器的連接,用于部署多個(gè)Openfire服務(wù)器圖5的邏輯架進(jìn)行擴(kuò)展;支持部署多個(gè)連接管理器,用于整合到Openfire的客戶端連接,提高Openfire的在線用戶數(shù)提供了一系列的可用插件,并支持插件擴(kuò)展,即開(kāi)發(fā)者可通過(guò)部署新的plugin,進(jìn)行功能的擴(kuò)展。Openfire還作為VoIP通信信令服務(wù)器,提供端到端的Jingle信令的協(xié)商和傳輸。服務(wù)本平臺(tái)以plugin的方式,對(duì)Openfire進(jìn)行了功能擴(kuò)展,包括用戶管理和、獲取用戶狀態(tài)和通信日志統(tǒng)計(jì)等。采用不同的協(xié)議與客戶端進(jìn)行交互:IM傳輸采用XMPP信令傳輸基于Jingle協(xié)議對(duì)所提供API的采用HTTP?;赟TUNTURN的方式進(jìn)行NAT穿越。STUN服務(wù)器檢測(cè)主機(jī)的NAT類型,并根據(jù)NAT類型,在客戶端進(jìn)行打洞,以支持兩個(gè)客戶端之間的P2P通信。TURN服務(wù)器用于解決對(duì)稱型NAT的穿越問(wèn)題。TURN服務(wù)器相當(dāng)于中繼服務(wù)器,客戶端獲取TURN的公網(wǎng)IP地址,客戶端之間的通信均通過(guò)TURN服務(wù)器進(jìn)行中轉(zhuǎn),這對(duì)TURN服務(wù)器的性能提出了很高的要求。但基于TURN服務(wù)器是對(duì)STUN服務(wù)器的有效補(bǔ)充,可以滿足性能要求。Web應(yīng)用以HTTP綁定的方式登錄并Openfire服務(wù)器,但Web客戶端和Openfire服務(wù)器處于不同域,涉及瀏覽器JavaScript跨域問(wèn)題。這就需要Web客戶端調(diào)用JavaScript80端口,并且是同一子域。使用Apache做反HTTP-bindXMPPHTTP-binding端口。基于安全性的考慮,服務(wù)平臺(tái)將Openfire服務(wù)器部署在內(nèi)網(wǎng),并同時(shí)配置內(nèi)網(wǎng)IP地址和IP地址,使內(nèi)網(wǎng)用戶和外網(wǎng)用戶均可訪問(wèn)。STUN服務(wù)器必須部署在公網(wǎng),并且內(nèi)置兩個(gè)網(wǎng)卡,向外部提供兩個(gè)公網(wǎng)IP地址和兩個(gè)端口,進(jìn)行NAT類型的檢測(cè)和打洞TURN服務(wù)器也部署在公網(wǎng),向外部提供一個(gè)公網(wǎng)IP地址和端口Apache反向服務(wù)器與Openfire服務(wù)器部署在同一臺(tái)機(jī)器上。結(jié)束本文總結(jié)WebRTC的主要優(yōu)點(diǎn)和技術(shù)特點(diǎn),對(duì)分別利用WebRTC技術(shù)提供的庫(kù)和WebAPI設(shè)計(jì)和開(kāi)發(fā)具有實(shí)時(shí)音通信功能的移動(dòng)客戶端應(yīng)用和Web應(yīng)用進(jìn)行了技術(shù)可行性分析,并詳細(xì)描述了筆者基WebRTC技術(shù)開(kāi)發(fā)移動(dòng)客戶端應(yīng)用、Web應(yīng)用和的參考設(shè)計(jì)在不同的移動(dòng)網(wǎng)絡(luò)環(huán)境(3G網(wǎng)絡(luò)和Wi-Fi網(wǎng)絡(luò))和
同的Android智能上對(duì)所開(kāi)發(fā)的WebRTC移動(dòng)客戶端進(jìn)試,發(fā)現(xiàn)WebRTC核心庫(kù)對(duì)網(wǎng)絡(luò)時(shí)延、噪音抑制和回聲消除都有較好的處理,能在不同網(wǎng)絡(luò)環(huán)境中獲得較好的語(yǔ)音質(zhì)量。在固定寬帶和PC上測(cè)試WebRTC的Web應(yīng)用,除了較好質(zhì)量,VP8也能很好地處理視頻信息。當(dāng)然,還需要在更多環(huán)境和條件下對(duì)WebRTC技術(shù)進(jìn)行測(cè)試,對(duì)進(jìn)行系統(tǒng)客觀的分析,更好地評(píng)價(jià)WebRTC技術(shù)在音通信服務(wù)中的技術(shù)成熟度。WebRTC移動(dòng)客戶端和Web應(yīng)用還有很大的改進(jìn)空間。比如,客戶端可以根據(jù)不同的網(wǎng)絡(luò)環(huán)境動(dòng)態(tài)調(diào)整編解碼,在iSAC、iLBC和Opus編中自動(dòng)選擇適合當(dāng)前網(wǎng)絡(luò)環(huán)境的最優(yōu)編和技術(shù)參數(shù)。編VP8和H.264在不同網(wǎng)絡(luò)環(huán)境下的性能對(duì)比也值得進(jìn)一步的深入研究。WebRTC移動(dòng)客戶端目前只支持Android移動(dòng)平臺(tái),可以將WebRTC庫(kù)移植到其他移動(dòng)平臺(tái)上,客戶端可以支持的操作系統(tǒng)。也可以將WebRTC庫(kù)和移植部分封裝為SDK,供移動(dòng)應(yīng)用開(kāi)發(fā)者開(kāi)發(fā)各種具有實(shí)時(shí)通信能力的移動(dòng)客戶端。Web應(yīng)用同移動(dòng)客戶端之間的互聯(lián)也值得進(jìn)一步的研究。在WebRTC技術(shù)中,目前還沒(méi)有進(jìn)一步挖掘的能力和對(duì)數(shù)據(jù)流的支持,包括WebAPI中的數(shù)據(jù)信道的使用和WebRTC核心庫(kù)中對(duì)應(yīng)但還未出現(xiàn)的數(shù)據(jù)流引擎。參考文獻(xiàn)WebRTC.W3CHTML5.IETFRTCWebJSEP.JavaScriptsessionestablishmentIETFRFC5245 ctiveConnectivityIETFRFC5389STUN.SessionTraversalUtilitiesforIETFRFC5766TURN.TraversalUsingRelaysaroundW3CWebRTCWorkgroup.W3CWebRTCAPI.IETFRTCWebWorkgroup.3GPPTR23.701.StudyontheSupportofWebRTCIMSAccesstoIMS,2013IETFRFC3951iLBC.InternetLowBitRateIETFRFC3592RTPiLBC.RTPPayloadFormatforInternetLowBitRateCodecSpeech,2004IETFRFC6716Opus.DefinitionoftheOpusAudioWebMproject.(下轉(zhuǎn)第36頁(yè)聯(lián)網(wǎng)發(fā)展的政策、規(guī)定、規(guī)劃和標(biāo)準(zhǔn)等,在新的技術(shù)高對(duì)可能出現(xiàn)之問(wèn)題案,確保IPv6技術(shù)與應(yīng)用的持續(xù)、快速、健康、有序發(fā)國(guó)下一代互聯(lián)網(wǎng)和移動(dòng)互聯(lián)網(wǎng)安全、穩(wěn)健地步入IPv6時(shí)代。
[作者簡(jiǎn)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 村后備干部考試題筆試及答案
- 銀行系統(tǒng)java面試題及答案
- 高中校醫(yī)考試題庫(kù)及答案
- 山姆超市管培生面試題及答案
- 候鳥森林考試題及答案
- 西語(yǔ)駕駛考試題及答案
- 家庭趣事的背后家庭記事文4篇范文
- 2024-2025學(xué)年遼寧省重點(diǎn)高中沈陽(yáng)市郊聯(lián)體高一上學(xué)期期末考試語(yǔ)文試題(解析版)
- 2024-2025學(xué)年江蘇省南京市、鎮(zhèn)江市、徐州市聯(lián)盟校高一3月月考語(yǔ)文試題(解析版)
- 2024-2025學(xué)年湖北省十堰市六縣市區(qū)一中教聯(lián)體高一3月月考語(yǔ)文試題(解析版)
- 《宮頸癌防治知識(shí)普及》課件
- 施工單位關(guān)于工作安排的聯(lián)絡(luò)函
- 2024年度海南省國(guó)家電網(wǎng)招聘之電網(wǎng)計(jì)算機(jī)通關(guān)提分題庫(kù)(考點(diǎn)梳理)
- (新版)水利水電工程施工企業(yè)“三類人員”安全生產(chǎn)考核題庫(kù)-(單選多選題庫(kù))
- 醫(yī)療器械物流高效配送與存儲(chǔ)方案
- 部編版小學(xué)二年級(jí)下冊(cè)語(yǔ)文全冊(cè)教案
- 《慢性病健康教育》課件
- 維修發(fā)動(dòng)機(jī)培訓(xùn)課件
- HRM4800原料立式磨使用手冊(cè)
- 《高速公路改擴(kuò)建工程永臨結(jié)合護(hù)欄技術(shù)規(guī)程》
- 老年糖尿病與肌少癥
評(píng)論
0/150
提交評(píng)論