一種數(shù)據(jù)共享的方法、系統(tǒng)及服務(wù)器端的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)共享的方法、系統(tǒng)及服務(wù)器端。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展,越來越多的個人已經(jīng)組建了自己的家庭局域網(wǎng),將家人的照片、視頻及重要文件存放其中,可以方便訪問。而一旦自己出門在外,想要訪問這些資源,該怎么辦呢?比較通用的辦法是,先將這些資源上傳至云服務(wù)器,當(dāng)需要的時候,再從客戶端進行訪問。這種辦法的缺點是:一、對個人而言,免費的云存儲空間是有限的;二、云服務(wù)器是公用的,不適宜存放私密文件;三、這種方式不能做到實時共享。
【發(fā)明內(nèi)容】
[0003]本發(fā)明實施例提供了一種數(shù)據(jù)共享的方法、系統(tǒng)及服務(wù)器端,旨在解決現(xiàn)有技術(shù)提供的數(shù)據(jù)共享的方法,需要將數(shù)據(jù)上傳至云服務(wù)器上通過云服務(wù)器進行中轉(zhuǎn),不能實現(xiàn)客戶端之間數(shù)據(jù)的實時共享的問題。
[0004]—方面,提供一種數(shù)據(jù)共享的方法,所述方法包括:
[0005]服務(wù)器端接收第一客戶端發(fā)送的與第二客戶端建立連接的連接請求;
[0006]服務(wù)器端根據(jù)所述連接請求為第一客戶端與第二客戶端之間建立一個點對點的通道;
[0007]服務(wù)器端接收第一客戶端發(fā)送的獲取共享文件或者共享本地文件的請求,所述共享文件存儲在第二客戶端中,所述本地文件存儲在第一客戶端中;
[0008]在服務(wù)器端的控制下,第一客戶端和第二客戶端之間通過所述點對點的通道傳輸所述共享文件或者所述本地文件。
[0009]進一步地,服務(wù)器端配置有信令服務(wù)器和防火墻打洞服務(wù)器,服務(wù)器端通過信令服務(wù)器和防火墻打洞服務(wù)器為第一客戶端和第二客戶端之間建立一個點對點的通道。
[0010]進一步地,服務(wù)器端配置有web服務(wù)器,所述web服務(wù)器對客戶端的身份進行認(rèn)證,認(rèn)證通過后,客戶端將文件轉(zhuǎn)換成DataURL,再將其分成多個碎片,并通過RTCDataChannel在第一客戶端和第二客戶端之間進行傳輸,所述RTCDataChannel建立在所述點對點的通道上。
[0011]進一步地,服務(wù)器端配置有同步服務(wù)器,服務(wù)器端接收到客戶端發(fā)送的獲取同步文件的請求時,通過同步服務(wù)器完成對客戶端數(shù)據(jù)的同步。
[0012]進一步地,服務(wù)器端接收到客戶端要求更新同步文件的請求時,完成對同步服務(wù)器上數(shù)據(jù)的同步。
[0013]另一方面,提供一種服務(wù)器端,所述服務(wù)器端包括:
[0014]第一請求接收單元,用于接收第一客戶端發(fā)送的與第二客戶端建立連接的連接請求;
[0015]通道建立單元,用于根據(jù)所述連接請求為第一客戶端與第二客戶端之間建立一個點對點的通道;
[0016]第二請求接收單元,用于接收第一客戶端發(fā)送的獲取共享文件或者共享本地文件的請求,所述共享文件存儲在第二客戶端中,所述本地文件存儲在第一客戶端中;
[0017]文件傳輸控制單元,用于控制通信的發(fā)起和結(jié)束,第一客戶端和第二客戶端之間通過所述點對點的通道傳輸所述共享文件或者所述本地文件。
[0018]進一步地,服務(wù)器端配置有信令服務(wù)器和防火墻打洞服務(wù)器,所述通道建立單元通過信令服務(wù)器和防火墻打洞服務(wù)器為第一客戶端和第二客戶端之間建立一個點對點的通道。
[0019]進一步地,服務(wù)器端配置有web服務(wù)器,通過所述web服務(wù)器對客戶端的身份進行認(rèn)證,認(rèn)證通過后,客戶端將文件轉(zhuǎn)換成DataURL,再將其分成多個碎片,并通過RTCDataChannel在第一客戶端和第二客戶端之間進行傳輸,所述RTCDataChannel建立在所述點對點的通道上。
[0020]進一步地,服務(wù)器端配置有同步服務(wù)器,服務(wù)器端還包括:
[0021]客戶端同步單元,用于接收到客戶端發(fā)送的獲取同步文件的請求時,通過同步服務(wù)器完成對客戶端數(shù)據(jù)的同步。
[0022]進一步地,服務(wù)器端還包括:
[0023]服務(wù)器同步單元,用于接收到客戶端要求更新同步文件的請求時,完成對同步服務(wù)器上數(shù)據(jù)的同步。
[0024]又一方面,提供一種數(shù)據(jù)共享的系統(tǒng),所述系統(tǒng)包括至少兩個客戶端,所述系統(tǒng)還包括如上所述的服務(wù)器端。
[0025]在本發(fā)明實施例,第一客戶端與第二客戶端之間建立點對點的通道后,第一客戶端與第二客戶端之間可以通過所述點對點的通道傳輸共享文件或者本地文件至對方,使得客戶端之間需要共享數(shù)據(jù)時,不再需要將數(shù)據(jù)上傳至云服務(wù)器上通過云服務(wù)器進行中轉(zhuǎn),可以實現(xiàn)客戶端之間數(shù)據(jù)的實時共享。
【附圖說明】
[0026]圖1是本發(fā)明實施例一提供的數(shù)據(jù)共享的方法的實現(xiàn)流程圖;
[0027]圖2是本發(fā)明實施例一提供的數(shù)據(jù)共享的方法中,兩個客戶端之間建立點對點的通道的示意圖;
[0028]圖3是本發(fā)明實施例一提供的數(shù)據(jù)共享的方法中,兩個客戶端之間使用ICE框架進行NAT穿越的示意圖;
[0029]圖4是本發(fā)明實施例一提供的數(shù)據(jù)共享的方法中,兩個客戶端之間進行數(shù)據(jù)傳輸?shù)牟灰鈭D;
[0030]圖5是本發(fā)明實施例一提供的數(shù)據(jù)共享的方法中,同步服務(wù)器對客戶端數(shù)據(jù)進行同步的時序圖;
[0031]圖6是本發(fā)明實施例一提供的數(shù)據(jù)共享的方法中,客戶端對同步服務(wù)器進行數(shù)據(jù)更新同步的時序圖;
[0032]圖7是本發(fā)明實施例二提供的服務(wù)器端的結(jié)構(gòu)框圖;
[0033]圖8是本發(fā)明實施例三提供的數(shù)據(jù)共享的系統(tǒng)的整體架構(gòu)示意圖。
【具體實施方式】
[0034]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0035]在本發(fā)明實施例中,服務(wù)器端接收到第一客戶端發(fā)送的與第二客戶端建立連接的連接請求后,根據(jù)所述連接請求為第一客戶端與第二客戶端之間建立一個點對點的通道,在接收第一客戶端發(fā)送的獲取共享文件或者共享本地文件的請求后,在服務(wù)器端的控制下,第一客戶端和第二客戶端之間通過所述點對點的通道傳輸所述共享文件或者所述本地文件。
[0036]以下結(jié)合具體實施例對本發(fā)明的實現(xiàn)進行詳細(xì)描述:
[0037]實施例一
[0038]圖1示出了本發(fā)明實施例一提供的數(shù)據(jù)共享的方法的實現(xiàn)流程,,詳述如下:
[0039]在步驟S101中,服務(wù)器端接收第一客戶端發(fā)送的與第二客戶端建立連接的連接請求。
[0040]在本發(fā)明實施例中,服務(wù)器端可以部署在一臺電腦PC上。服務(wù)器端安裝并配置有Web服務(wù)器,通過所述web服務(wù)器對客戶端的身份進行認(rèn)證。服務(wù)器端還可以配置同步服務(wù)器、信令服務(wù)器和防火墻打洞服務(wù)器。安裝并配置好各個服務(wù)器后,可以打開相應(yīng)的服務(wù),再通過瀏覽器登陸Web服務(wù)器的網(wǎng)絡(luò)地址,輸入用戶名和密碼之后,進入管理界面,管理界面上將顯示各個服務(wù)器可以提供的所有服務(wù)的服務(wù)狀態(tài)、網(wǎng)絡(luò)中的所有的客戶端、共享文件和同步文件。服務(wù)器端可以接收客戶端發(fā)送的登錄請求,當(dāng)接收到客戶端發(fā)送的登錄請求時,服務(wù)器端驗證客戶端的身份,身份驗證通過后,才能接收客戶端發(fā)送的連接請求。
[0041]為了描述簡單,將發(fā)送連接請求的客戶端稱為第一客戶端,將第一客戶端請求與之建立連接的客戶端稱為第二客戶端。
[0042]客戶端安裝有跨平臺的客戶端軟件,具體的,客戶端可以是手機、平板電腦和PC等多種計算機設(shè)備。
[0043]用戶打開客戶端軟件后,輸入Web服務(wù)器的網(wǎng)絡(luò)地址,用戶名和密碼之后,進入應(yīng)用界面,應(yīng)用界面中可以顯示網(wǎng)絡(luò)中所有的客戶端、共享文件和同步文件。
[0044]當(dāng)?shù)谝豢蛻舳诵枰c第二客戶端建立點對點的連接時,可以選擇要連接的第二客戶端,發(fā)送一個與第二客戶端建立連接的連接請求至服務(wù)器端。
[0045]在步驟S102中,服務(wù)器端根據(jù)所述連接請求建立第一客戶端與第二客戶端之間的點對點的通道。
[0046]在本發(fā)明實施例中,服務(wù)器端接收到第一客戶端發(fā)送的與第二客戶端建立連接的連接請求后,根據(jù)該連接請求在第一客戶端與第二客戶端之間建立一個點對點的通道。
[0047]具體的,服務(wù)器端配置有信令服務(wù)器,服務(wù)器端接收到第一客戶端發(fā)送的連接請求后,可以通過信令服務(wù)器在客戶端之間傳遞信令,從而為兩個客戶端之間建立點對點的通道,信令中包含的信息有cess1n信息、網(wǎng)絡(luò)配置信息及媒體適配信息。其中,兩個客戶端之間建立點對點的通道的過程示意圖如圖2所示,其中,信令服務(wù)器和客戶端之間傳遞的信令是offer信令和answer信令,建立通道的過程,在此不再贅述。
[0048]優(yōu)選地,在連接互聯(lián)網(wǎng)時,由于用戶大多都處于防火墻后面或者配置私有子網(wǎng)的家庭路由器后面,這時建立點對點的通道時,就需要使用網(wǎng)絡(luò)地址轉(zhuǎn)換(Network AddressTranslat1n,NAT)穿越技術(shù)。服務(wù)器端配置有防火墻打洞服務(wù)器,可以通過防火墻打洞服務(wù)器建立客戶端之間的點對點的通道。WebRTC使用RTCPeerConnect1n在瀏覽器之間傳遞流數(shù)據(jù),在RTCPeerConnect1n中,使用ICE框架來保證RTCPeerConnect1n能夠?qū)崿F(xiàn)NAT穿越。兩個客戶端之間使用ICE框架進行NAT穿越的示意圖如圖3所示,進行NAT穿越的過程,在此不再贅述。
[0049]在步驟S103中,服務(wù)器端接收第一客戶端發(fā)送的獲取共享文件或者共享本地文件的請求,所述共享文件存儲在第二客戶端中,所述本地文件存儲在第一客戶端中。
[0050]在本發(fā)明實施例中,第一客戶端用戶選擇要連接的第二客戶端,與第二客戶端建立點對點的通道后,還可以選擇從第二客戶端獲取某個共享文件,比如,存儲在第二客戶端中的某個音樂文件。
[0051]另外,第一客戶端用戶選擇要連接的第二客戶端,與第二客戶端建立點對點的通道后,還可以獲取某個本地文件,比如,存儲在第一客戶端中的某個音樂文件,傳輸所述音樂文件至第二客戶端。
[0052]在步驟S104中,在服務(wù)器端的控制下,第一客戶端和第二客戶端之間通過所述點對點的通道傳輸所述共享文件或者所述本地文件。
[0053]在本發(fā)明實施例中,接收到第一客戶端用戶選定的共享文件或者第一客戶端用戶選定的本地文件后