日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

一種消息發(fā)送方法及系統(tǒng)的制作方法

文檔序號(hào):10473829閱讀:340來源:國知局
一種消息發(fā)送方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及一種消息發(fā)送方法及系統(tǒng),方法包括:客戶端讀取一本地文檔的c_ver,生成數(shù)據(jù)同步請(qǐng)求;服務(wù)器端接收數(shù)據(jù)同步請(qǐng)求,計(jì)算s_ver與c_ver的差值,判斷該差值是否小于設(shè)定閾值,若是,則抽取已執(zhí)行消息隊(duì)列隊(duì)尾的差值數(shù)個(gè)操作作為初始化消息隊(duì)列發(fā)送,若否,則將所述服務(wù)端文檔發(fā)送;客戶端根據(jù)接收到的數(shù)據(jù)進(jìn)行相應(yīng)的數(shù)據(jù)初始化;客戶端讀取未發(fā)送消息隊(duì)列,在未發(fā)送消息隊(duì)列不為空時(shí),由未發(fā)送消息隊(duì)列的頭元素開始,按順序?qū)⑽窗l(fā)送消息隊(duì)列中的元素發(fā)送給服務(wù)器端,服務(wù)器端按順序執(zhí)行相應(yīng)操作后將所有操作依次加入已執(zhí)行消息隊(duì)列的尾部,同步完成。與現(xiàn)有技術(shù)相比,本發(fā)明具有可實(shí)現(xiàn)精確的增量同步、保證客戶端離線狀態(tài)的可用性和可靠性等優(yōu)點(diǎn)。
【專利說明】
一種消息發(fā)送方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001 ]本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其是涉及一種消息發(fā)送方法及系統(tǒng)。
【背景技術(shù)】
[0002]互聯(lián)網(wǎng)應(yīng)用的底層實(shí)現(xiàn)繞不開消息的發(fā)送與接收。不同類型的應(yīng)用程序?qū)ο⑹瞻l(fā)的要求區(qū)別很大。即時(shí)通訊類應(yīng)用,注重消息的時(shí)效性及可靠性,所謂時(shí)效性是指消息要求實(shí)時(shí)收發(fā),否則就失去了“即時(shí)通訊”的意義;而可靠性要求消息丟失率要盡量小,消息重復(fù)接收率要盡量小,否則就沒有可用性。而電子郵件類應(yīng)用對(duì)消息的時(shí)效性就沒有那么高,只需要保證消息的可靠性。
[0003]移動(dòng)設(shè)備的協(xié)同編輯應(yīng)用,對(duì)消息收發(fā)的要求更為苛刻。時(shí)效性、可靠性是必須要滿足的兩個(gè)特性。移動(dòng)設(shè)備的網(wǎng)絡(luò)狀態(tài)的切換是非常頻繁的,一個(gè)用戶體驗(yàn)絕佳的應(yīng)用,它在斷網(wǎng)的時(shí)候也能夠使用,在聯(lián)網(wǎng)的時(shí)候能夠要求無縫同步到服務(wù)器端,而且能夠處理由此帶來的數(shù)據(jù)沖突;另外一方面,還有可用性的要求,即各個(gè)接收方收消息的序列必須和消息發(fā)送方發(fā)送的序列完全一致,以保證數(shù)據(jù)的完整性。最后,數(shù)據(jù)同步的開銷要盡量小,盡可能地增量同步。
[0004]目前流行的文檔協(xié)作類應(yīng)用,其消息機(jī)制還達(dá)不到離線使用和可用性的要求。

【發(fā)明內(nèi)容】

[0005]本發(fā)明的目的就是為了克服上述現(xiàn)有技術(shù)存在的缺陷而提供一種消息發(fā)送方法及系統(tǒng),可實(shí)現(xiàn)精確的增量同步和網(wǎng)絡(luò)狀態(tài)切換時(shí)的無縫連接,保證了客戶端離線狀態(tài)的可用性和可靠性。
[0006]本發(fā)明的目的可以通過以下技術(shù)方案來實(shí)現(xiàn):
[0007]—種消息發(fā)送方法,該方法包括:
[0008]I)客戶端讀取一本地文檔的客戶端數(shù)據(jù)版本變量C_ver;
[0009 ] 2)以c_ver為參數(shù)生成數(shù)據(jù)同步請(qǐng)求;
[0010]3)服務(wù)器端接收所述數(shù)據(jù)同步請(qǐng)求,判斷與所述本地文檔對(duì)應(yīng)的服務(wù)端文檔是否已打開,若是,則執(zhí)行步驟4),若否,則執(zhí)行文檔打開操作后執(zhí)行步驟4);
[0011 ] 4)讀取所述服務(wù)端文檔的服務(wù)器端數(shù)據(jù)版本變量s_Ver和已執(zhí)行消息隊(duì)列;
[0012 ] 5)計(jì)算s_ver與c_ver的差值,判斷該差值是否小于設(shè)定閾值,若是,則抽取已執(zhí)行消息隊(duì)列隊(duì)尾的差值數(shù)個(gè)操作作為初始化消息隊(duì)列發(fā)送給客戶端,若否,則將所述服務(wù)端文檔發(fā)送給客戶端;
[0013]6)客戶端根據(jù)接收到的數(shù)據(jù)進(jìn)行相應(yīng)的數(shù)據(jù)初始化:
[0014]若接收到的為服務(wù)端文檔,則將本地文檔替換為所述服務(wù)端文檔,同時(shí)將c_ver賦值為s_ver;
[0015]若接收到的為初始化消息隊(duì)列,則順序執(zhí)行所述初始化消息隊(duì)列,每執(zhí)行一個(gè)操作,c_ver的值加I ;
[0016]7)客戶端讀取未發(fā)送消息隊(duì)列,判斷所述未發(fā)送消息隊(duì)列是否為空,若是,則同步完成,若否,則執(zhí)行步驟8);
[0017]8)由未發(fā)送消息隊(duì)列的頭元素開始,按順序?qū)⑽窗l(fā)送消息隊(duì)列中的元素發(fā)送給服務(wù)器端,服務(wù)器端按順序執(zhí)行相應(yīng)操作后將所有操作依次加入已執(zhí)行消息隊(duì)列的尾部,同步完成。
[0018]步驟5)中,所述設(shè)定閾值與已執(zhí)行消息隊(duì)列的額定長度相等。
[0019]步驟5)中,所述設(shè)定閾值為200。
[0020]所述步驟8)的具體過程為:
[0021]801)客戶端獲取未發(fā)送消息隊(duì)列的頭元素,發(fā)送至服務(wù)器端;
[0022]802)服務(wù)器端根據(jù)所述頭元素執(zhí)行相應(yīng)操作,并且將該操作放入已執(zhí)行消息隊(duì)列的尾部,對(duì)s_ver執(zhí)行加I操作;
[0023]803)服務(wù)器端判斷已執(zhí)行消息隊(duì)列長度是否超出設(shè)定閾值,若則,則刪除已執(zhí)行消息隊(duì)列的頭元素,若否,則執(zhí)行步驟804);
[0024]804)服務(wù)器向客戶端發(fā)送成功反饋,客戶端刪除未發(fā)送消息隊(duì)列的頭元素,并對(duì)c_ver執(zhí)行加I操作;
[0025]805)判斷當(dāng)前的未發(fā)送消息隊(duì)列是否為空,若是,則同步完成,若否,則返回步驟801)。
[0026]一種消息發(fā)送系統(tǒng),該系統(tǒng)包括通過網(wǎng)絡(luò)連接的客戶端和服務(wù)器端,所述客戶端包括:
[0027]第一緩存裝置,用于存儲(chǔ)未發(fā)送消息隊(duì)列;
[0028]第一版本變量獲取裝置,用于獲取本地文檔的客戶端數(shù)據(jù)版本變
[0029]數(shù)據(jù)初始化裝置,用于實(shí)現(xiàn)客戶端本地文檔的數(shù)據(jù)初始化;
[0030]消息發(fā)送裝置,用于向服務(wù)器端發(fā)送未發(fā)送消息隊(duì)列中的數(shù)據(jù),完成同步;
[0031]所述服務(wù)器端包括:
[0032]第二緩存裝置,用于存儲(chǔ)已執(zhí)行消息隊(duì)列;
[0033]第二版本變量獲取裝置,用于獲取服務(wù)端文檔的服務(wù)器端數(shù)據(jù)版本變量s_Ver;
[0034]初始化響應(yīng)裝置,根據(jù)客戶端發(fā)送的同步請(qǐng)求向客戶端發(fā)送服務(wù)端文檔或初始化消息隊(duì)列,具體為:的差值小于設(shè)定閾值,則抽取已執(zhí)行消息隊(duì)列隊(duì)尾的差值數(shù)個(gè)操作作為初始化消息隊(duì)列發(fā)送給客戶端,否則,將所述服務(wù)端文檔發(fā)送給客戶端;
[0035]消息執(zhí)行裝置,用于根據(jù)客戶端發(fā)送的數(shù)據(jù)進(jìn)行相應(yīng)操作,完成同步。
[0036]所述數(shù)據(jù)初始化裝置包括:
[0037]同步請(qǐng)求發(fā)送模塊,用于向服務(wù)器端發(fā)送同步請(qǐng)求,并接收服務(wù)器端返回的數(shù)據(jù);
[0038]本地文檔替換模塊,在服務(wù)器端返回的為服務(wù)端文檔時(shí)響應(yīng),用于將本地文檔替換為所述服務(wù)端文檔,同時(shí)將(3_\^1.賦值為s_ver;
[0039]初始化消息執(zhí)行模塊,在服務(wù)器端返回的為初始化消息隊(duì)列時(shí)響應(yīng),用于順序執(zhí)行所述初始化消息隊(duì)列,每執(zhí)行一個(gè)操作,c_Ver的值加I。
[0040]所述消息發(fā)送裝置包括:
[0041]未發(fā)送消息隊(duì)列查詢模塊,用于判斷未發(fā)送消息隊(duì)列是否為空;
[0042]頭元素發(fā)送模塊,在所述未發(fā)送消息隊(duì)列不為空時(shí)響應(yīng),用于獲取未發(fā)送消息隊(duì)列的頭元素并發(fā)送給服務(wù)器端;
[0043]反饋接收模塊,用于接收服務(wù)器端的反饋,在反饋為發(fā)送成功時(shí),刪除未發(fā)送消息隊(duì)列的頭元素,并對(duì)c_ver執(zhí)行加I操作。
[0044]所述消息執(zhí)行裝置包括:
[0045]消息接收模塊,用于接收客戶端發(fā)送的頭元素;
[0046]操作執(zhí)行模塊,根據(jù)所述頭元素進(jìn)行相應(yīng)操作,并將該操作加入已執(zhí)行消息隊(duì)列的尾部,對(duì)s_ver執(zhí)行加I操作;
[0047]已執(zhí)行消息長度判斷模塊,用于判斷已執(zhí)行消息隊(duì)列的長度是否超過設(shè)定閾值;
[0048]隊(duì)列元素刪除模塊,在已執(zhí)行消息長度判斷模塊的判斷結(jié)果為是時(shí)響應(yīng),刪除已執(zhí)行消息隊(duì)列的頭元素;
[0049]反饋發(fā)送模塊,用于向客戶端發(fā)送成功反饋。
[0050]所述設(shè)定閾值與已執(zhí)行消息隊(duì)列的額定長度相等。
[0051 ] 所述設(shè)定閾值為200。
[0052]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下有益效果:
[0053](I)本發(fā)明采用版本控制機(jī)制,客戶端使用c_Ver、服務(wù)器端使用s_Ver作為版本變量,標(biāo)記客戶端和服務(wù)器端間的版本差值,可以精確計(jì)算增量,實(shí)現(xiàn)了增量同步;
[0054](2)服務(wù)器端使用已執(zhí)行消息隊(duì)列機(jī)制,這樣能夠確保所有客戶端的消息序列是和服務(wù)器端一致的,保證了消息的可用性及可靠性;
[0055](3)客戶端使用未發(fā)送消息隊(duì)列機(jī)制,將文檔的操作和消息的發(fā)送隔離開來,保證了網(wǎng)絡(luò)狀態(tài)切換時(shí)的無縫連接,以保證客戶端離線狀態(tài)的可用性和可靠性。
【附圖說明】
[0056]圖1為本發(fā)明方法的流程示意圖;
[0057]圖2為本發(fā)明客戶端消息發(fā)送的流程示意圖。
【具體實(shí)施方式】
[0058]下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說明。本實(shí)施例以本發(fā)明技術(shù)方案為前提進(jìn)行實(shí)施,給出了詳細(xì)的實(shí)施方式和具體的操作過程,但本發(fā)明的保護(hù)范圍不限于下述的實(shí)施例。
[0059]如圖1所示,本實(shí)施例提供一種消息發(fā)送方法,該方法包括以下步驟:
[0060]步驟SI,客戶端打開一本地文檔,讀取該地文檔的客戶端數(shù)據(jù)版本變量c_ver。本實(shí)施例中,客戶端的c_ver = 50,未發(fā)送消息隊(duì)列中有三個(gè)操作,分別為新建一個(gè)橢圓。
[0061 ]步驟S2,客戶端以c_ver為參數(shù)生成數(shù)據(jù)同步請(qǐng)求發(fā)送給服務(wù)器端。
[0062]步驟S3,服務(wù)器端接收所述數(shù)據(jù)同步請(qǐng)求,判斷與所述本地文檔對(duì)應(yīng)的服務(wù)端文檔是否已打開,若是,則執(zhí)行步驟S4,若否,則執(zhí)行文檔打開操作后執(zhí)行步驟S4;
[0063]步驟S4,讀取所述服務(wù)端文檔的服務(wù)器端數(shù)據(jù)版本變量s_Ver和已執(zhí)行消息隊(duì)列。本實(shí)施例中,服務(wù)器端s_ver = 55,服務(wù)器端的已執(zhí)行消息隊(duì)列中有55個(gè)操作。
[0064]步驟S5,計(jì)算s_ver與c_ver的差值,判斷該差值是否小于設(shè)定閾值,若是,則抽取已執(zhí)行消息隊(duì)列隊(duì)尾的差值數(shù)個(gè)操作作為初始化消息隊(duì)列發(fā)送給客戶端,若否,則將所述服務(wù)端文檔發(fā)送給客戶端。設(shè)定閾值與已執(zhí)行消息隊(duì)列的額定長度相等,本實(shí)施例中,設(shè)定閾值設(shè)置為200。本實(shí)施例中,的差值為5,小于設(shè)定閾值,則將已執(zhí)行消息隊(duì)列隊(duì)尾的5個(gè)操作打包作為初始化消息隊(duì)列發(fā)送給客戶端。
[0065]步驟S6,客戶端根據(jù)接收到的初始化消息隊(duì)列進(jìn)行數(shù)據(jù)初始化,更新本地文檔,具體為順序執(zhí)行所述初始化消息隊(duì)列,每執(zhí)行一個(gè)操作,c_Ver的值加I。
[0066]步驟S7,客戶端讀取未發(fā)送消息隊(duì)列,判斷所述未發(fā)送消息隊(duì)列是否為空,若是,則同步完成,若否,則執(zhí)行步驟S8。
[0067]步驟S8,由未發(fā)送消息隊(duì)列的頭元素開始,按順序?qū)⑽窗l(fā)送消息隊(duì)列中的三個(gè)操作發(fā)送給服務(wù)器端,服務(wù)器端按順序執(zhí)行相應(yīng)操作后將所有操作依次加入已執(zhí)行消息隊(duì)列的尾部,同步完成。
[0068]如圖2所示為本實(shí)施例客戶端消息發(fā)送的具體過程。在本實(shí)施例中,客戶端未發(fā)送消息隊(duì)列有兩個(gè)操作,一個(gè)是新建矩形的操作,一個(gè)是移動(dòng)矩形的操作,c_Ver = 54;服務(wù)器端已執(zhí)行消息隊(duì)列的長度是54,s_Ver = 54。下面結(jié)合圖2對(duì)其進(jìn)行詳細(xì)描述:
[0069]步驟S801,判斷未發(fā)送消息隊(duì)列是否為空,不為空,則執(zhí)行步驟S802;
[0070]步驟S802,客戶端獲取未發(fā)送消息隊(duì)列的頭元素,是一個(gè)新建矩形的操作,發(fā)送至服務(wù)器端;
[0071]步驟S803,服務(wù)器端根據(jù)所述頭元素執(zhí)行相應(yīng)操作,并且將該操作放入已執(zhí)行消息隊(duì)列的尾部,對(duì)s_ver執(zhí)行加I操作;
[0072]步驟S804,服務(wù)器端判斷已執(zhí)行消息隊(duì)列長度是否超出設(shè)定閾值200,若則,則刪除已執(zhí)行消息隊(duì)列的頭元素,若否,則執(zhí)行步驟S805;
[0073]步驟S805,服務(wù)器向客戶端發(fā)送成功反饋,客戶端刪除未發(fā)送消息隊(duì)列的頭元素,并對(duì)c_ver執(zhí)行加I操作,c_ver = 55,返回步驟S801。
[0074]本實(shí)施例還提供與上述消息發(fā)送方法相對(duì)應(yīng)的消息發(fā)送系統(tǒng),該系統(tǒng)包括通過網(wǎng)絡(luò)連接的客戶端和服務(wù)器端。
[0075]其中,客戶端包括:第一緩存裝置,用于存儲(chǔ)未發(fā)送消息隊(duì)列;第一版本變量獲取裝置,用于獲取本地文檔的客戶端數(shù)據(jù)版本變量(3_%^數(shù)據(jù)初始化裝置,用于實(shí)現(xiàn)客戶端本地文檔的數(shù)據(jù)初始化;消息發(fā)送裝置,用于向服務(wù)器端發(fā)送未發(fā)送消息隊(duì)列中的數(shù)據(jù),完成同步。
[0076]所述數(shù)據(jù)初始化裝置包括:同步請(qǐng)求發(fā)送模塊,用于向服務(wù)器端發(fā)送同步請(qǐng)求,并接收服務(wù)器端返回的數(shù)據(jù);本地文檔替換模塊,在服務(wù)器端返回的為服務(wù)端文檔時(shí)響應(yīng),用于將本地文檔替換為所述服務(wù)端文檔,同時(shí)將c_ver賦值為s_ver ;初始化消息執(zhí)行模塊,在服務(wù)器端返回的為初始化消息隊(duì)列時(shí)響應(yīng),用于順序執(zhí)行所述初始化消息隊(duì)列,每執(zhí)行一個(gè)操作,c_ver的值加I。
[0077]所述消息發(fā)送裝置包括:未發(fā)送消息隊(duì)列查詢模塊,用于判斷未發(fā)送消息隊(duì)列是否為空;頭元素發(fā)送模塊,在所述未發(fā)送消息隊(duì)列不為空時(shí)響應(yīng),用于獲取未發(fā)送消息隊(duì)列的頭元素并發(fā)送給服務(wù)器端;反饋接收模塊,用于接收服務(wù)器端的反饋,在反饋為發(fā)送成功時(shí),刪除未發(fā)送消息隊(duì)列的頭元素,并對(duì)c_Ver執(zhí)行加I操作。
[0078]服務(wù)器端包括:第二緩存裝置,用于存儲(chǔ)已執(zhí)行消息隊(duì)列;第二版本變量獲取裝置,用于獲取服務(wù)端文檔的服務(wù)器端數(shù)據(jù)版本變量s_ver;初始化響應(yīng)裝置,根據(jù)客戶端發(fā)送的同步請(qǐng)求向客戶端發(fā)送服務(wù)端文檔或初始化消息隊(duì)列,具體為:若8_¥61"與(3_¥61.的差值小于設(shè)定閾值,則抽取已執(zhí)行消息隊(duì)列隊(duì)尾的差值數(shù)個(gè)操作作為初始化消息隊(duì)列發(fā)送給客戶端,否則,將所述服務(wù)端文檔發(fā)送給客戶端;消息執(zhí)行裝置,用于根據(jù)客戶端發(fā)送的數(shù)據(jù)進(jìn)行相應(yīng)操作,完成同步。
[0079]所述消息執(zhí)行裝置包括:消息接收模塊,用于接收客戶端發(fā)送的頭元素;操作執(zhí)行模塊,根據(jù)所述頭元素進(jìn)行相應(yīng)操作,并將該操作加入已執(zhí)行消息隊(duì)列的尾部,對(duì)s_ver執(zhí)行加I操作;已執(zhí)行消息長度判斷模塊,用于判斷已執(zhí)行消息隊(duì)列的長度是否超過設(shè)定閾值;隊(duì)列元素刪除模塊,在已執(zhí)行消息長度判斷模塊的判斷結(jié)果為是時(shí)響應(yīng),刪除已執(zhí)行消息隊(duì)列的頭元素;反饋發(fā)送模塊,用于向客戶端發(fā)送成功反饋。
【主權(quán)項(xiàng)】
1.一種消息發(fā)送方法,其特征在于,該方法包括: 1)客戶端讀取一本地文檔的客戶端數(shù)據(jù)版本變量C_ver; 2)Wc_ver為參數(shù)生成數(shù)據(jù)同步請(qǐng)求; 3)服務(wù)器端接收所述數(shù)據(jù)同步請(qǐng)求,判斷與所述本地文檔對(duì)應(yīng)的服務(wù)端文檔是否已打開,若是,則執(zhí)行步驟4),若否,則執(zhí)行文檔打開操作后執(zhí)行步驟4); 4)讀取所述服務(wù)端文檔的服務(wù)器端數(shù)據(jù)版本變量s_ver和已執(zhí)行消息隊(duì)列; 5)計(jì)算的差值,判斷該差值是否小于設(shè)定閾值,若是,則抽取已執(zhí)行消息隊(duì)列隊(duì)尾的差值數(shù)個(gè)操作作為初始化消息隊(duì)列發(fā)送給客戶端,若否,則將所述服務(wù)端文檔發(fā)送給客戶端; 6)客戶端根據(jù)接收到的數(shù)據(jù)進(jìn)行相應(yīng)的數(shù)據(jù)初始化: 若接收到的為服務(wù)端文檔,則將本地文檔替換為所述服務(wù)端文檔,同時(shí)將c_ver賦值為s_ver; 若接收到的為初始化消息隊(duì)列,則順序執(zhí)行所述初始化消息隊(duì)列,每執(zhí)行一個(gè)操作,C_ver的值加I ; 7)客戶端讀取未發(fā)送消息隊(duì)列,判斷所述未發(fā)送消息隊(duì)列是否為空,若是,則同步完成,若否,則執(zhí)行步驟8); 8)由未發(fā)送消息隊(duì)列的頭元素開始,按順序?qū)⑽窗l(fā)送消息隊(duì)列中的元素發(fā)送給服務(wù)器端,服務(wù)器端按順序執(zhí)行相應(yīng)操作后將所有操作依次加入已執(zhí)行消息隊(duì)列的尾部,同步完成。2.根據(jù)權(quán)利要求1所述的消息發(fā)送方法,其特征在于,步驟5)中,所述設(shè)定閾值與已執(zhí)行消息隊(duì)列的額定長度相等。3.根據(jù)權(quán)利要求2所述的消息發(fā)送方法,其特征在于,步驟5)中,所述設(shè)定閾值為200。4.根據(jù)權(quán)利要求1所述的消息發(fā)送方法,其特征在于,所述步驟8)的具體過程為: 801)客戶端獲取未發(fā)送消息隊(duì)列的頭元素,發(fā)送至服務(wù)器端; 802)服務(wù)器端根據(jù)所述頭元素執(zhí)行相應(yīng)操作,并且將該操作放入已執(zhí)行消息隊(duì)列的尾部,對(duì)s_ver執(zhí)行加I操作; 803)服務(wù)器端判斷已執(zhí)行消息隊(duì)列長度是否超出設(shè)定閾值,若則,則刪除已執(zhí)行消息隊(duì)列的頭元素,若否,則執(zhí)行步驟804); 804)服務(wù)器向客戶端發(fā)送成功反饋,客戶端刪除未發(fā)送消息隊(duì)列的頭元素,并對(duì)c_ver執(zhí)行加I操作; 805)判斷當(dāng)前的未發(fā)送消息隊(duì)列是否為空,若是,則同步完成,若否,則返回步驟801)。5.—種消息發(fā)送系統(tǒng),該系統(tǒng)包括通過網(wǎng)絡(luò)連接的客戶端和服務(wù)器端,其特征在于,所述客戶端包括: 第一緩存裝置,用于存儲(chǔ)未發(fā)送消息隊(duì)列; 第一版本變量獲取裝置,用于獲取本地文檔的客戶端數(shù)據(jù)版本變量(3^郎; 數(shù)據(jù)初始化裝置,用于實(shí)現(xiàn)客戶端本地文檔的數(shù)據(jù)初始化; 消息發(fā)送裝置,用于向服務(wù)器端發(fā)送未發(fā)送消息隊(duì)列中的數(shù)據(jù),完成同步; 所述服務(wù)器端包括: 第二緩存裝置,用于存儲(chǔ)已執(zhí)行消息隊(duì)列; 第二版本變量獲取裝置,用于獲取服務(wù)端文檔的服務(wù)器端數(shù)據(jù)版本變量s_ver; 初始化響應(yīng)裝置,根據(jù)客戶端發(fā)送的同步請(qǐng)求向客戶端發(fā)送服務(wù)端文檔或初始化消息隊(duì)列,具體為:的差值小于設(shè)定閾值,則抽取已執(zhí)行消息隊(duì)列隊(duì)尾的差值數(shù)個(gè)操作作為初始化消息隊(duì)列發(fā)送給客戶端,否則,將所述服務(wù)端文檔發(fā)送給客戶端; 消息執(zhí)行裝置,用于根據(jù)客戶端發(fā)送的數(shù)據(jù)進(jìn)行相應(yīng)操作,完成同步。6.根據(jù)權(quán)利要求5所述的消息發(fā)送系統(tǒng),其特征在于,所述數(shù)據(jù)初始化裝置包括: 同步請(qǐng)求發(fā)送模塊,用于向服務(wù)器端發(fā)送同步請(qǐng)求,并接收服務(wù)器端返回的數(shù)據(jù); 本地文檔替換模塊,在服務(wù)器端返回的為服務(wù)端文檔時(shí)響應(yīng),用于將本地文檔替換為所述服務(wù)端文檔,同時(shí)將c_ver賦值為s_ver ; 初始化消息執(zhí)行模塊,在服務(wù)器端返回的為初始化消息隊(duì)列時(shí)響應(yīng),用于順序執(zhí)行所述初始化消息隊(duì)列,每執(zhí)行一個(gè)操作,c_ver的值加I。7.根據(jù)權(quán)利要求5所述的消息發(fā)送系統(tǒng),其特征在于,所述消息發(fā)送裝置包括: 未發(fā)送消息隊(duì)列查詢模塊,用于判斷未發(fā)送消息隊(duì)列是否為空; 頭元素發(fā)送模塊,在所述未發(fā)送消息隊(duì)列不為空時(shí)響應(yīng),用于獲取未發(fā)送消息隊(duì)列的頭元素并發(fā)送給服務(wù)器端; 反饋接收模塊,用于接收服務(wù)器端的反饋,在反饋為發(fā)送成功時(shí),刪除未發(fā)送消息隊(duì)列的頭元素,并對(duì)c_ver執(zhí)行加I操作。8.根據(jù)權(quán)利要求5所述的消息發(fā)送系統(tǒng),其特征在于,所述消息執(zhí)行裝置包括: 消息接收模塊,用于接收客戶端發(fā)送的頭元素; 操作執(zhí)行模塊,根據(jù)所述頭元素進(jìn)行相應(yīng)操作,并將該操作加入已執(zhí)行消息隊(duì)列的尾部,對(duì)s_ver執(zhí)行加I操作; 已執(zhí)行消息長度判斷模塊,用于判斷已執(zhí)行消息隊(duì)列的長度是否超過設(shè)定閾值; 隊(duì)列元素刪除模塊,在已執(zhí)行消息長度判斷模塊的判斷結(jié)果為是時(shí)響應(yīng),刪除已執(zhí)行消息隊(duì)列的頭元素; 反饋發(fā)送模塊,用于向客戶端發(fā)送成功反饋。9.根據(jù)權(quán)利要求5所述的消息發(fā)送系統(tǒng),其特征在于,所述設(shè)定閾值與已執(zhí)行消息隊(duì)列的額定長度相等。10.根據(jù)權(quán)利要求9所述的消息發(fā)送系統(tǒng),其特征在于,所述設(shè)定閾值為200。
【文檔編號(hào)】H04L12/863GK105827736SQ201610338656
【公開日】2016年8月3日
【申請(qǐng)日】2016年5月20日
【發(fā)明人】姜建軍, 皇甫珊欣, 馬世雄
【申請(qǐng)人】上海畫擎信息科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1