基于Flash平臺(tái)的雙向數(shù)據(jù)傳輸通道的建立方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及Flash文件的處理,更具體地,涉及一種基于Flash平臺(tái)的雙向數(shù)據(jù)傳輸通道的建立方法。
【背景技術(shù)】
[0002]Flash是一種目前在網(wǎng)頁上流行的、專有的多媒體播放器,初設(shè)計(jì)目的為播放2維向量動(dòng)量,之后成為適合開發(fā)創(chuàng)造豐富型互聯(lián)網(wǎng)應(yīng)用程序、流視頻音頻的工具。Flash使用向量圖形的技術(shù)來最小化文件的大小以及創(chuàng)造節(jié)省網(wǎng)絡(luò)帶寬和下載時(shí)間的文件,因此Flash成為嵌入網(wǎng)頁中的小游戲、動(dòng)畫以及圖形用戶界面常用的格式。利用Flash播放多媒體文件,主要是通過連接網(wǎng)絡(luò)服務(wù)器下載多媒體文件并對(duì)其進(jìn)行播放。目前,F(xiàn)lash提供了完整的對(duì)等計(jì)算(Peer to Peer,簡稱P2P)解決方案(例如Adobe公司開發(fā)的Cirrus),其允許在不同的Flash客戶端(例如,裝載有Flash的智能電視、智能手機(jī)、平板電腦、筆記本電腦、臺(tái)式電腦、智能手表等)之間相互交互數(shù)據(jù),從而降低網(wǎng)絡(luò)服務(wù)器被Flash客戶端不斷被存取的壓力。
[0003]由于Flash提供的Cirrus方案,基于此可以快速開發(fā)出很多P2P的應(yīng)用。但是目前的Flash P2P方案也存在一些問題:一方面Flash客戶端在運(yùn)行時(shí)會(huì)提醒用戶是否開啟P2P功能,這給用戶帶來不佳的用戶體驗(yàn),有些用戶因此會(huì)拒絕開啟;另一方面,Cirrus提供的P2P功能,由于其實(shí)現(xiàn)細(xì)節(jié)的封閉,其沒有辦法與具有其他系統(tǒng)(即第三方業(yè)務(wù)系統(tǒng))的客戶端實(shí)現(xiàn)互通;此外,基于Cirrus實(shí)現(xiàn)P2P的層次(例如抽象層次,Cirrus不僅提供了 P2P連接功能,還提供了文件分享的實(shí)現(xiàn))比較高,不便于跟具有其他系統(tǒng)的客戶端進(jìn)行通訊。
[0004]有鑒于此,本發(fā)明提供一種基于Flash平臺(tái)的雙向數(shù)據(jù)傳輸通道的建立方法以解決上述問題。
【發(fā)明內(nèi)容】
[0005]本申請(qǐng)公開了的一種基于Flash平臺(tái)的雙向數(shù)據(jù)傳輸通道的建立方法,其特征在于,包括:
[0006]基于該Flash平臺(tái),第一客戶端建立與第二客戶端的正向連接;
[0007]在該正向連接已成功建立之后,該第一客戶端向該第二客戶端發(fā)送第一數(shù)據(jù);
[0008]基于該Flash平臺(tái),該第二客戶端建立與該第一客戶端的反向連接;以及
[0009]在該反向連接已成功建立之后,該第二客戶端向該第一客戶端發(fā)送第二數(shù)據(jù);
[0010]其中,基于該Flash平臺(tái),將建立該正向連接的步驟和建立該反向連接的步驟進(jìn)行封裝,形成單一的P2PStream對(duì)象。
[0011]進(jìn)一步地,其中,該第一客戶端使用NetConnect1n NetConnect1n: connect 函數(shù)建立NetStream對(duì)象,以建立該正向連接。
[0012]進(jìn)一步地,其中,該NetConnect1n:connect函數(shù)的參數(shù)為該第二客戶端的PeerlDo
[0013]進(jìn)一步地,其中,該第二客戶端使用NetConnect1n:connect函數(shù)建立NetStream對(duì)象,以建立該反向連接。
[0014]進(jìn)一步地,其中,該NetConnect1n:connect函數(shù)的參數(shù)為該第一客戶端的RemotelDo
[0015]進(jìn)一步地,其中,該第一 /第二客戶端通過NetStream.send函數(shù)向該第二 /第一客戶端發(fā)送該第一/第二數(shù)據(jù)。
[0016]進(jìn)一步地,其中,該第二 /第一客戶端通過Η處理函數(shù)接收該第一 /第二數(shù)據(jù)。
[0017]進(jìn)一步地,其中,該第一客戶端和/或該第二客戶端執(zhí)行該單一 P2PStream對(duì)象,用以建立該雙向數(shù)據(jù)傳輸通道。
[0018]進(jìn)一步地,其中,該第一客戶端和/或該第二客戶端的上層應(yīng)用直接使用該單一P2PStream 對(duì)象。
[0019]本發(fā)明提出的方法,具有以下優(yōu)點(diǎn):
[0020]1)使用所構(gòu)建的雙向數(shù)據(jù)傳輸通道,客戶端可承載任意的P2P應(yīng)用協(xié)議,適應(yīng)性更廣。
[0021]2)利用封裝的P2PStream對(duì)象,可在PC桌面和移動(dòng)端之間實(shí)現(xiàn)NetStream的功能,從而實(shí)現(xiàn)跨平臺(tái)的P2P數(shù)據(jù)通訊。
[0022]當(dāng)然,實(shí)施本申請(qǐng)的任一方法必不一定需要同時(shí)達(dá)到以上所述的所有技術(shù)效果。
【附圖說明】
[0023]此處所說明的附圖用來提供對(duì)本申請(qǐng)的進(jìn)一步理解,構(gòu)成本申請(qǐng)的一部分,本申請(qǐng)的示意性實(shí)施例及其說明用于解釋本申請(qǐng),并不構(gòu)成對(duì)本申請(qǐng)的不當(dāng)限定。在附圖中:
[0024]圖1為依據(jù)本發(fā)明一實(shí)施例的基于Flash平臺(tái)的雙向數(shù)據(jù)傳輸通道的建立方法的流程示意圖;
[0025]圖2是依據(jù)本發(fā)明另一實(shí)施例的基于Flash平臺(tái)的雙向數(shù)據(jù)傳輸通道的建立方法的流程示意圖。
【具體實(shí)施方式】
[0026]如在說明書及權(quán)利要求當(dāng)中使用了某些詞匯來指稱特定組件。本領(lǐng)域技術(shù)人員應(yīng)可理解,硬件制造商可能會(huì)用不同名詞來稱呼同一個(gè)組件。本說明書及權(quán)利要求并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的準(zhǔn)則。如在通篇說明書及權(quán)利要求當(dāng)中所提及的“包含”為一開放式用語,故應(yīng)解釋成“包含但不限定于”?!按笾隆笔侵冈诳山邮盏恼`差范圍內(nèi),本領(lǐng)域技術(shù)人員能夠在一定誤差范圍內(nèi)解決所述技術(shù)問題,基本達(dá)到所述技術(shù)效果。說明書后續(xù)描述為實(shí)施本申請(qǐng)的較佳實(shí)施方式,然所述描述乃以說明本申請(qǐng)的一般原則為目的,并非用以限定本申請(qǐng)的范圍。本申請(qǐng)的保護(hù)范圍當(dāng)視所附權(quán)利要求所界定者為準(zhǔn)。
[0027]目前Flash所提供的P2P解決方案(例如Adobe公司開發(fā)的Cirrus),其允許在不同的Flash客戶端建立直接連接,用于存取多媒體文件。這種直接連接是基于實(shí)時(shí)多媒體流協(xié)議(Real Time Media Flow Protocol,RTMFP)的。通過使用RTMFP,那些依賴直播、實(shí)時(shí)通信的應(yīng)用,比如社區(qū)、音視頻聊天和多人游戲就有能力來發(fā)布高質(zhì)量的通信解決方案。RTMFP讓終端用戶可以直接連接并通信,可以使用麥克風(fēng)和攝象頭直接聊天。此方案提升了目前Flash播放器在網(wǎng)絡(luò)交互方面的體驗(yàn)。此外,RTMFP將減少直播、實(shí)時(shí)聊天方案的帶寬消耗,例如音視頻聊天和多人游戲。因?yàn)镽TMFP的數(shù)據(jù)在終端用戶之間流動(dòng),而不是和服務(wù)器,所以此方案很適合于大范圍的部署。RTMFP因?yàn)椴捎昧擞脩魯?shù)據(jù)報(bào)協(xié)議(User DatagramProtocol, UDP)進(jìn)行通信,也提升了傳送的速度。UDP不屬于連接型協(xié)議,因而具有資源消耗小,處理速度快的優(yōu)點(diǎn),所以通常音頻、視頻和普通數(shù)據(jù)在傳送時(shí)使用UDP較多,因?yàn)樗鼈兗词古紶杹G失一兩個(gè)數(shù)據(jù)包,也不會(huì)對(duì)接收結(jié)果產(chǎn)生太大影響。RTMFP有兩個(gè)特性,即快速連接恢復(fù)和IP動(dòng)態(tài)化,可以幫助解決一些連接錯(cuò)誤??焖龠B接恢復(fù):連接在意外情況下將快速恢復(fù)。例如,一個(gè)無線連接掉線了,一旦重連,他將迅速擁有所有的傳送能力。IP動(dòng)態(tài)化:一個(gè)活動(dòng)的網(wǎng)絡(luò)會(huì)話將以PEER來標(biāo)識(shí),即使他變了一個(gè)IP,也可以保持原來的會(huì)話。例如,一個(gè)筆記本在一個(gè)無線網(wǎng)絡(luò)獲得了一個(gè)新IP地址,它將立刻繼續(xù)剛才的會(huì)話。
[0028]具體而言,F(xiàn)lash提供NetStream對(duì)象,使用RTMFP協(xié)議對(duì)該對(duì)象進(jìn)行封裝,換句話說,利用RTMFP協(xié)議來實(shí)現(xiàn)NetStream。并提供了發(fā)送方法,可以單向發(fā)送數(shù)據(jù)。Flash客戶端所連接的另一 Flash客戶端,則可以單向接收數(shù)據(jù)。NetStream提供報(bào)文統(tǒng)計(jì)功能,它根據(jù)報(bào)文的目的IP地址、目的端口號(hào)、源IP地址、源端口號(hào)、協(xié)議號(hào)和T0S來區(qū)分流信息,并針對(duì)不同的流信息進(jìn)行獨(dú)立的數(shù)據(jù)統(tǒng)計(jì)。如此,F(xiàn)lash提供單向發(fā)送和單向接收。
[0029]本發(fā)明將基于Flash提供的NetStream單向發(fā)送和接收通道來實(shí)現(xiàn)雙向的數(shù)據(jù)傳輸通道,即Flash客戶端不僅僅可以發(fā)送數(shù)據(jù),同時(shí)還可以接受另一 Flash客戶端發(fā)送的數(shù)據(jù)?;谠撾p向的數(shù)據(jù)傳輸通道,可以運(yùn)行各種P2P應(yīng)用協(xié)議。
[0030]圖1是依據(jù)本發(fā)明一實(shí)施例的基于Flash平臺(tái)的雙向數(shù)據(jù)傳輸通道的建立方法的流程示意圖。如圖1所示,包括以下步驟:
[0031]步驟101、基于Flash平臺(tái),第一客戶端建立與第二客戶端的正向連接。
[0032]在本發(fā)明的一實(shí)施例中,第一客戶端可使用NetConnect1n這個(gè)