到客戶端C的用于同步服務(wù)器數(shù)據(jù)的數(shù)據(jù)同步請求時,根據(jù)用戶操作數(shù)據(jù)的優(yōu)先級,從S101服務(wù)器接收客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù)和客戶端B記錄用戶B畫豎線的用戶操作數(shù)據(jù)中,獲取客戶端當(dāng)前正在操作位置的數(shù)據(jù),將獲取的當(dāng)前操作位置的數(shù)據(jù)作為待同步數(shù)據(jù)。假設(shè)服務(wù)器較先接收到客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù),此時服務(wù)器從接收到客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù)中,獲取客戶端A當(dāng)前正在畫橫線位置的用戶操作數(shù)據(jù),并將此獲取到的客戶端A當(dāng)前正在畫橫線位置的用戶操作數(shù)據(jù)作為待同步數(shù)據(jù)。
[0047]S103,將獲取到的所述待同步數(shù)據(jù)作為同步數(shù)據(jù)發(fā)送給所述客戶端。
[0048]本發(fā)明實施例中,服務(wù)器將S102中獲取到的待同步數(shù)據(jù)作為同步數(shù)據(jù)發(fā)送給所述客戶端。具體實現(xiàn)中,服務(wù)器將在S102中從客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù)和客戶端B記錄用戶B畫豎線的用戶操作數(shù)據(jù)中,獲取到的待同步數(shù)據(jù)作為同步數(shù)據(jù)發(fā)送給客戶端C。假設(shè)服務(wù)器較先接收到客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù),那么服務(wù)器就將S102獲取到的客戶端A當(dāng)前正在畫橫線位置的用戶操作數(shù)據(jù)的待同步數(shù)據(jù)作為同步數(shù)據(jù)發(fā)送給所述客戶端C。
[0049]本發(fā)明實施例中,可根據(jù)用戶操作數(shù)據(jù)的優(yōu)先級快速有選擇地進(jìn)行數(shù)據(jù)同步操作,提高了數(shù)據(jù)同步效率,同時也提高了人們獲取消息的實時性,提升了用戶體驗。
[0050]圖2是本發(fā)明另一實施例中的一種基于客戶端的網(wǎng)絡(luò)數(shù)據(jù)同步方法的流程示意圖,如圖所示本實施例中的基于客戶端的網(wǎng)絡(luò)數(shù)據(jù)同步方法可以包括:
[0051]S201,服務(wù)端接收客戶端記錄的用戶操作數(shù)據(jù)。
[0052]本發(fā)明實施例中,服務(wù)端接收多個客戶端記錄用戶操作過程和用戶操作結(jié)果的用戶操作數(shù)據(jù),用戶操作過程可以包括:對象的選擇、對象的移動、對象的縮放、對象的切換等操作,本發(fā)明實施例不作限定。
[0053]用戶操作結(jié)果可以包括:對象的增加、對象的刪除、屬性修改、對象所在的位置信息等,本發(fā)明實施例不作限定。
[0054]所述客戶端的數(shù)量可以是一個或一個以上,特別地,當(dāng)客戶端的數(shù)量是一個以上時,所有的客戶端的類型可以相同,也可以不相同,本發(fā)明實施例不作限定。
[0055]舉例來說,用戶A正在客戶端A畫一條橫線、用戶B正在客戶端B畫一條豎線。在整個操作過程中,客戶端A記錄用戶A畫橫線的整個操作過程和操作結(jié)果的用戶操作數(shù)據(jù),客戶端B記錄用戶B畫豎線的整個操作過程和操作結(jié)果的用戶操作數(shù)據(jù)??蛻舳薃和客戶端B都將各自記錄的所述用戶操作數(shù)據(jù)發(fā)送至服務(wù)器,在發(fā)送用戶操作數(shù)據(jù)的同時攜帶上表明其為客戶端身份的標(biāo)識即可。服務(wù)器接收客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù)和客戶端B記錄用戶B畫豎線的用戶操作數(shù)據(jù)。
[0056]S202,當(dāng)接收到客戶端的用于同步服務(wù)器數(shù)據(jù)的數(shù)據(jù)同步請求時,根據(jù)用戶操作數(shù)據(jù)的優(yōu)先級從接收到的所述客戶端記錄的用戶操作數(shù)據(jù)中獲取待同步數(shù)據(jù)。
[0057]本發(fā)明實施例中,服務(wù)器在接收到客戶端的用于同步服務(wù)器數(shù)據(jù)的數(shù)據(jù)同步請求時,可根據(jù)用戶操作數(shù)據(jù)的優(yōu)先級,從S201接收到的多個客戶端記錄的用戶操作數(shù)據(jù)中獲取當(dāng)前操作位置的數(shù)據(jù),將獲取的當(dāng)前操作位置的數(shù)據(jù)作為待同步數(shù)據(jù)。
[0058]具體實現(xiàn)中,由于不同位置的數(shù)據(jù)優(yōu)先級是不同的。假設(shè)當(dāng)前操作位置的數(shù)據(jù)的優(yōu)先級設(shè)定為最高級,相對于最高級而言,其他操作位置的數(shù)據(jù)的優(yōu)先級較低。當(dāng)服務(wù)器接收到客戶端的用于同步服務(wù)器數(shù)據(jù)的數(shù)據(jù)同步請求時,服務(wù)器可以根據(jù)用戶操作數(shù)據(jù)的優(yōu)先級,從S201接收到的多個客戶端記錄的用戶操作數(shù)據(jù)中獲取優(yōu)先級最高的當(dāng)前操作位置的數(shù)據(jù)作為待同步數(shù)據(jù)。
[0059]根據(jù)S201的例子,在同一個數(shù)據(jù)同步場景中,現(xiàn)有客戶端C向服務(wù)器發(fā)送用于同步服務(wù)端數(shù)據(jù)的數(shù)據(jù)同步請求,所述服務(wù)器在接收到客戶端C的用于同步服務(wù)器數(shù)據(jù)的數(shù)據(jù)同步請求時,根據(jù)用戶操作數(shù)據(jù)的優(yōu)先級,從S201服務(wù)器接收客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù)和客戶端B記錄用戶B畫豎線的用戶操作數(shù)據(jù)中,獲取客戶端當(dāng)前正在操作位置的數(shù)據(jù),將獲取的當(dāng)前操作位置的數(shù)據(jù)作為待同步數(shù)據(jù)。假設(shè)服務(wù)器較先接收到客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù),此時服務(wù)器從接收到客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù)中,獲取客戶端A當(dāng)前正在畫橫線位置的用戶操作數(shù)據(jù),并將此獲取到的客戶端A當(dāng)前正在畫橫線位置的用戶操作數(shù)據(jù)作為待同步數(shù)據(jù)。
[0060]S203,將獲取到的所述待同步數(shù)據(jù)作為同步數(shù)據(jù)發(fā)送給所述客戶端。
[0061]本發(fā)明實施例中,服務(wù)器將S202中獲取到的待同步數(shù)據(jù)作為同步數(shù)據(jù)發(fā)送給所述客戶端。具體實現(xiàn)中,服務(wù)器將在S202中從客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù)和客戶端B記錄用戶B畫豎線的用戶操作數(shù)據(jù)中,獲取到的待同步數(shù)據(jù)作為同步數(shù)據(jù)發(fā)送給客戶端C。假設(shè)服務(wù)器較先接收到客戶端A記錄用戶A畫橫線的用戶操作數(shù)據(jù),那么服務(wù)器就將S202獲取到的客戶端A當(dāng)前正在畫橫線位置的用戶操作數(shù)據(jù)作為同步數(shù)據(jù)發(fā)送給所述客戶端C。
[0062]S204,將其他操作位置的數(shù)據(jù)發(fā)送給所述客戶端。
[0063]本發(fā)明實施例中,S203將從S202中獲取到當(dāng)前操作位置的數(shù)據(jù)作為待同步數(shù)據(jù)發(fā)送給所述客戶端,沒有發(fā)送其他操作位置的數(shù)據(jù)給所述客戶端,S204服務(wù)器將其他操作位置的數(shù)據(jù)發(fā)送給所述客戶端。根據(jù)S201的例子,S204將S203發(fā)送后剩下的用戶操作數(shù)據(jù)發(fā)送給所述客戶端C。具體實現(xiàn)中,服務(wù)器先將客戶端A其他操作位置的用戶操作數(shù)據(jù)和客戶端B的用戶操作數(shù)據(jù)發(fā)送給所述客戶端C。
[0064]S205,在向客戶端發(fā)送同步數(shù)據(jù)的過程中,繼續(xù)接收并緩存其他客戶端的用戶操作數(shù)據(jù)。
[0065]本發(fā)明實施例中,在S203向客戶端發(fā)送同步數(shù)據(jù)的過程中,其他客戶端可能會發(fā)送用戶操作數(shù)據(jù)給服務(wù)器,為了保證數(shù)據(jù)的完整性,服務(wù)器繼續(xù)接收并緩存其他客戶端的用戶操作數(shù)據(jù)。依據(jù)S201的例子,在服務(wù)器正在同步客戶端A和客戶端B的用戶操作數(shù)據(jù)給客戶端C的過程中,現(xiàn)有客戶端D和客戶端E向服務(wù)器發(fā)送客戶端D記錄用戶D正在輸入一段文字的用戶操作數(shù)據(jù)和客戶端E記錄用戶E正在繪圖的用戶操作數(shù)據(jù),在發(fā)送用戶操作數(shù)據(jù)的同時攜帶上了表明其為客戶端身份的標(biāo)識。此時,服務(wù)器還是繼續(xù)接收并緩存客戶端D記錄用戶D正在輸入一段文字的用戶操作數(shù)據(jù)和客戶端E記錄用戶E正在繪圖的用戶操作數(shù)據(jù)。
[0066]需要說明的是,在服務(wù)器正在同步客戶端A和客戶端B的用戶操作數(shù)據(jù)給客戶端C的過程中,客戶端D和客戶端E增加進(jìn)入同步數(shù)據(jù)的場景中,新加入的客戶端D和客戶端E也可以發(fā)送用于同步服務(wù)器數(shù)據(jù)的數(shù)據(jù)同步請求,來加快進(jìn)入同步數(shù)據(jù)的場景中。
[0067]在服務(wù)器正在同步客戶端A和客戶端B的用戶操作數(shù)據(jù)給客戶端C的過程中,客戶端B由于數(shù)據(jù)操作量過大或者其他原因意外退出同步數(shù)據(jù)的場景中,那么意外退出同步數(shù)據(jù)的場景的客戶端B可以向服務(wù)器發(fā)送用于同步服務(wù)器數(shù)據(jù)的數(shù)據(jù)同步請求,以便快速回到同步數(shù)據(jù)的場景中。
[0068]本發(fā)明實施例中,可根據(jù)用戶操作數(shù)據(jù)的優(yōu)先級快速有選擇地進(jìn)行數(shù)據(jù)同步操作,提高了數(shù)據(jù)同步效率,同時也提高了人們獲取消息的實時性,提升了用戶體驗。
[0069]圖3是本發(fā)明實施例中的一種基于客戶端的網(wǎng)絡(luò)數(shù)據(jù)同步方法的流程示意圖,如圖所示本實施例中的基于客戶端的網(wǎng)絡(luò)數(shù)據(jù)同步方法可以包括:
[0070]S301、客戶端記錄用戶的用戶操作數(shù)據(jù),并將所述用戶操作數(shù)據(jù)發(fā)送給服務(wù)端。
[0071]本發(fā)明實施例中,客戶端記錄用戶操作過程和用戶操作結(jié)果的用戶操作數(shù)據(jù),并將所述用戶操作數(shù)據(jù)發(fā)送給服務(wù)器。
[0072]其中,用戶操作過程可以包括:對象的選擇、對象的移動、對象的縮放、對象的切換等操作,本發(fā)明實施例不作限定。
[0073]用戶操作結(jié)果可以包括:對象的增加、對象的刪除、屬性修改、對象所在的位置信息等,本發(fā)明實施例不作限定。
[0074]舉例來說,用戶A正在客戶端A畫一條橫線、用戶B正在客戶端B畫一條豎線。在整個操作過程中,客戶端A記錄用戶A畫橫線的整個操作過程和操作結(jié)果的用戶操作數(shù)據(jù),客戶端B記錄用戶B畫豎線的整個操作過程和操作結(jié)果的用戶操作數(shù)據(jù)。客戶端A和客戶端B都將各自記錄的所述用戶操作數(shù)據(jù)發(fā)送至服務(wù)器,在發(fā)送用戶操作數(shù)據(jù)的同時攜帶上表明其為客戶端身份的標(biāo)識即可。
[0075]S302、生成并向所述服務(wù)器發(fā)送用于同步服務(wù)端數(shù)據(jù)的數(shù)據(jù)同步請求。
[0076]本發(fā)明實施例中,客戶端生成并向所述服務(wù)器發(fā)送用于同步服務(wù)端數(shù)據(jù)的數(shù)據(jù)同步請求。具體實現(xiàn)中,在實現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)同步中,客戶端需要向服務(wù)端發(fā)送一個或多個用于同步服務(wù)端數(shù)據(jù)的數(shù)據(jù)同步請求。舉例來說,在同一個數(shù)據(jù)同步場景中,現(xiàn)有客戶端C想要同步服務(wù)器中的數(shù)據(jù),那么客戶端C需要先生成一個或多個用于同步服務(wù)端數(shù)據(jù)的數(shù)據(jù)同步請求,并將上述用于同步服務(wù)端數(shù)據(jù)的數(shù)據(jù)同步請求發(fā)送至服務(wù)端,請求同步服務(wù)端數(shù)據(jù)。
[0077]