新四季網

發送離線消息的方法及裝置與流程

2023-06-07 04:00:56 3


本發明涉及計算機技術領域,具體而言,本發明涉及一種發送離線消息的方法及一種發送離線消息的裝置。



背景技術:

隨著計算機技術的發展,各種終端設備已成為人們生活中必不可少的工具,各種功能強大的終端作業系統及終端應用程式不斷湧現,為用戶帶來了更加便捷的體驗。當前的信息交互頻率不斷增多,終端應用程式與服務端或其他終端的交互數據信息也日益增多。

在現有的信息傳遞架構下,當用戶在終端應用程式中處於在線狀態時,可以實時地接收到服務端或其他終端向其發送數據信息,當用戶在終端應用程式中處於離線狀態時,即終端應用程式未被啟動運行,因此不能實時地接收到服務端或其他終端向其發送數據信息,隨後在用戶啟動進入終端應用程式後,將獲取應用程式在離線期間接收到的全部的離線數據。現有技術中,一般服務端將離線數據發送至終端後即會將離線數據進行刪除,但是在離線數據量較大的情況下,一方面,在向終端發送離線數據的過程中往往會發生連結中斷的情況,從而容易發生刪除終端未接收到的離線數據的情況,導致離線數據的丟失;另一方面,在接收到離線數據獲取請求後,若無法查找到相對應的某個離線數據時,將導致剩餘的接收到離線數據獲取請求對應的離線數據處於排隊等待狀態,無法及時將剩餘的離線數據發送至終端應用程式。

因此,需要一種發送離線數據的方案,來解決現有技術中數據發送過程中離線數據丟失的情況以及發送離線數據的過程中容易產生堵塞的問題。



技術實現要素:

為克服上述技術問題或者至少部分地解決上述技術問題,特提出以下技術方案:

本發明的實施例提出了一種發送離線消息的方法,包括:

依據接收到的數據獲取請求確定對應的多個離線數據;

將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方;

接收請求方返回的針對任一離線數據的反饋信息;

依據反饋信息判斷請求方是否已正確接收到任一離線數據;

依據判斷結果針對任一離線數據執行相應的處理操作。

優選地,將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方,包括:

將至少兩個離線數據通過同一長連接並行發送至對應的至少兩個請求方。

優選地,依據判斷結果針對任一離線數據執行相應的處理操作,包括以下任一項:

若判斷結果為任一離線數據被正確接收,刪除任一離線數據;

若判斷結果為任一離線數據未被正確接收,重新將任一離線數據發送至請求方。

可選地,還包括:

依據預定的數據籤名生成方式,對多個離線數據進行籤名;

其中,將多個離線數據中的至少兩個並行發送至請求方,包括:

將多個離線數據中的至少兩個及各自相應的數據籤名並行發送至請求方;

其中,請求方返回的反饋信息中包括接收方根據接收到的任一離線數據生成的待驗證數據籤名;

其中,依據反饋信息判斷請求方是否已正確接收任一離線數據,包括:

比對反饋信息中的待驗證數據籤名與任一離線數據對應的數據籤名是否一致來判斷請求方是否已正確接收到任一離線數據。

可選地,還包括:

將多個離線數據存儲至預定的緩存區域中,並將多個離線數據存儲至預建立的資料庫中;

其中,對多個離線數據進行籤名的步驟之後,還包括:

將與多個離線數據對應的數據籤名存儲至預定的緩存區域中;

其中,依據反饋信息判斷請求方是否已接收到正確的任一離線數據的步驟之前,包括:

從緩存區域中提取反饋信息對應的離線數據的數據籤名。

優選地,若判斷結果為任一離線數據被正確接收,刪除任一離線數據,包括:

若判斷結果為任一離線數據被正確接收,刪除預定的緩存區域中任一離線數據及相應的數據籤名的數據信息,並刪除預建立的資料庫中任一離線數據的數據記錄。

優選地,若判斷結果為任一離線數據未被正確接收,重新將任一離線數據發送至請求方,包括:

若判斷結果為任一離線數據未被正確接收,刪除預定的緩存區域中任一離線數據及相應的數據籤名的數據信息;

在預建立的資料庫中重新獲取任一離線數據的數據記錄,並存儲至預定的緩存區域;

將重新獲取到的任一離線數據發送至請求方。

可選地,方法還包括:

依據預定的數據籤名生成方式,對重新發送的任一離線數據進行籤名;

將與任一離線數據對應的數據籤名存儲至預定的緩存區域中。

本發明的另一實施例提出了一種發送離線消息的裝置,包括:

確定模塊,用於依據接收到的數據獲取請求確定對應的多個離線數據;

發送模塊,用於將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方;

接收模塊,用於接收請求方返回的針對任一離線數據的反饋信息;

判斷模塊,用於依據反饋信息判斷請求方是否已正確接收到任一離線數據;

執行模塊,用於依據判斷結果針對任一離線數據執行相應的處理操作。

優選地,發送模塊,包括:

第一發送單元,用於將至少兩個離線數據通過同一長連接並行發送至對應的至少兩個請求方。

優選地,執行模塊,包括以下任一項:

若判斷結果為任一離線數據被正確接收,刪除任一離線數據;

若判斷結果為任一離線數據未被正確接收,重新將任一離線數據發送至請求方。

可選地,還包括:

第一籤名模塊,用於依據預定的數據籤名生成方式,對多個離線數據進行籤名;

其中,發送模塊用於將多個離線數據中的至少兩個及各自相應的數據籤名並行發送至請求方;

其中,請求方返回的反饋信息中包括接收方根據接收到的任一離線數據生成的待驗證數據籤名;

其中,判斷模塊用於比對反饋信息中的待驗證數據籤名與任一離線數據對應的數據籤名是否一致來判斷請求方是否已正確接收到任一離線數據。

可選地,還包括:

第一存儲模塊,用於將多個離線數據存儲至預定的緩存區域中,並將多個離線數據存儲至預建立的資料庫中;

其中,對多個離線數據進行籤名之後,還包括:

第二存儲模塊,用於將與多個離線數據對應的數據籤名存儲至預定的緩存區域中;

其中,依據反饋信息判斷請求方是否已接收到正確的任一離線數據之前,包括:

提取模塊,用於從緩存區域中提取反饋信息對應的離線數據的數據籤名。

優選地,若判斷結果為任一離線數據被正確接收,刪除任一離線數據,執行模塊包括:

第一刪除單元,用於若判斷結果為任一離線數據被正確接收,刪除預定的緩存區域中任一離線數據及相應的數據籤名的數據信息,並刪除預建立的資料庫中任一離線數據的數據記錄。

優選地,若判斷結果為任一離線數據未被正確接收,重新將任一離線數據發送至請求方,執行模塊包括:

第二刪除單元,用於若判斷結果為任一離線數據未被正確接收,刪除預定的緩存區域中任一離線數據及相應的數據籤名的數據信息;

獲取單元,用於在預建立的資料庫中重新獲取任一離線數據的數據記錄,並存儲至預定的緩存區域;

第二發送單元,用於將重新獲取到的任一離線數據發送至請求方。

可選地,還包括:

第二籤名模塊,用於依據預定的數據籤名生成方式,對重新發送的任一離線數據進行籤名;

第三存儲模塊,用於將與任一離線數據對應的數據籤名存儲至預定的緩存區域中。

本發明的實施例中,提出了一種發送離線消息的方案,依據接收到的數據獲取請求確定對應的多個離線數據;將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方,實現了同時將離線數據及時地發送至各請求方,避免了各請求方同時請求獲取離線數據時可能會產生的其中至少一個請求方延遲接收離線數據的情況;接收請求方返回的針對任一離線數據的反饋信息,依據反饋信息判斷請求方是否已正確接收到任一離線數據,實現了準確地判斷請求方是否正確接收到任一離線數據,為後續針對任一離線數據執行相應的處理操作提供了必要的前提保障;依據判斷結果針對任一離線數據執行相應的處理操作,實現了根據不同的判斷結果,對任一離線數據執行不同的處理操作,避免了請求方在未接收到正確離線數據的情況下將離線數據進行刪除,而導致離線數據丟失的情況,進一步地,保證了請求方能夠接收到正確的離線數據。

本發明附加的方面和優點將在下面的描述中部分給出,這些將從下面的描述中變得明顯,或通過本發明的實踐了解到。

附圖說明

本發明上述的和/或附加的方面和優點從下面結合附圖對實施例的描述中將變得明顯和容易理解,其中:

圖1為本發明中一個實施例的發送離線消息的方法的流程示意圖;

圖2為本發明中另一實施例的發送離線消息的裝置的結構示意圖。

具體實施方式

下面詳細描述本發明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用於解釋本發明,而不能解釋為對本發明的限制。

本技術領域技術人員可以理解,除非特意聲明,這裡使用的單數形式「一」、「一個」、「所述」和「該」也可包括複數形式。應該進一步理解的是,本發明的說明書中使用的措辭「包括」是指存在所述特徵、整數、步驟、操作、元件和/或組件,但是並不排除存在或添加一個或多個其他特徵、整數、步驟、操作、元件、組件和/或它們的組。應該理解,當我們稱元件被「連接」或「耦接」到另一元件時,它可以直接連接或耦接到其他元件,或者也可以存在中間元件。此外,這裡使用的「連接」或「耦接」可以包括無線連接或無線耦接。這裡使用的措辭「和/或」包括一個或更多個相關聯的列出項的全部或任一單元和全部組合。

本技術領域技術人員可以理解,除非另外定義,這裡使用的所有術語(包括技術術語和科學術語),具有與本發明所屬領域中的普通技術人員的一般理解相同的意義。還應該理解的是,諸如通用字典中定義的那些術語,應該被理解為具有與現有技術的上下文中的意義一致的意義,並且除非像這裡一樣被特定定義,否則不會用理想化或過於正式的含義來解釋。

圖1為本發明中一個實施例的發送離線消息的方法的流程示意圖。

本發明的實施例中,各步驟所執行的內容概述如下:步驟S110:依據接收到的數據獲取請求確定對應的多個離線數據;步驟S120:將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方;步驟S130:接收請求方返回的針對任一離線數據的反饋信息;步驟S140:依據反饋信息判斷請求方是否已正確接收到任一離線數據;步驟S150:依據判斷結果針對任一離線數據執行相應的處理操作。

本發明的實施例中,提出了一種發送離線消息的方法,依據接收到的數據獲取請求確定對應的多個離線數據;將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方,實現了同時將離線數據及時地發送至各請求方,避免了各請求方同時請求獲取離線數據時可能會產生的其中至少一個請求方延遲接收離線數據的情況;接收請求方返回的針對任一離線數據的反饋信息,依據反饋信息判斷請求方是否已正確接收到任一離線數據,實現了準確地判斷請求方是否正確接收到任一離線數據,為後續針對任一離線數據執行相應的處理操作提供了必要的前提保障;依據判斷結果針對任一離線數據執行相應的處理操作,實現了根據不同的判斷結果,對任一離線數據執行不同的處理操作,避免了請求方在未接收到正確離線數據的情況下將離線數據進行刪除,而導致離線數據丟失的情況,進一步地,保證了請求方能夠接收到正確的離線數據。以下針對各個步驟的具體實現做進一步的說明:

步驟S110:依據接收到的數據獲取請求確定對應的多個離線數據。

具體地,依據接收到的至少兩個請求方發送的針對離線數據的數據獲取請求,確定對應的多個離線數據。

例如,在終端設備A與終端設備B、終端設備A與終端設備C的數據傳輸過程中,若終端設備B和終端設備C從離線狀態變更為在線狀態後,終端設備B和終端設備C向終端設備A發送離線數據的數據獲取請求,終端設備A依據接收到的數據獲取請求確定終端設備B在離線期間對應的離線數據為Data1,並確定終端設備C在離線期間對應的離線數據為Data2。

步驟S120:將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方。

例如,接上例,終端設備A將離線數據Data1和Data2分別並行發送至終端設備B和終端設備C。

步驟S130:接收請求方返回的針對任一離線數據的反饋信息。

例如,終端設備A接收終端設備B返回的針對離線數據Data1的反饋信息和終端設備C返回的針對離線數據Data2的反饋信息。

步驟S140:依據反饋信息判斷請求方是否已正確接收到任一離線數據。

例如,依據終端設備B返回的針對離線數據Data1的反饋信息,如「已接收到離線數據Data1」,終端設備A可判斷判斷終端設備B已正確接收到離線數據Data1;依據終端設備C返回的針對離線數據Data2的反饋信息,如「已接收到離線數據Data2」,終端設備A可判斷判斷終端設備C已正確接收到離線數據Data2。

需要說明的是,本領域技術人員可以了解到,發送反饋消息的方式還可以通過發送ACK(Acknowledgement,確認字符)包的形式進行消息反饋,本發明實施例中,會以特定形式的反饋消息為例說明,但並不對此進行限制。

步驟S150:依據判斷結果針對任一離線數據執行相應的處理操作。

例如,根據終端設備B已正確接收到離線數據Data1的判斷結果,終端設備A對存儲的離線數據Data1執行刪除操作;根據終端設備C已正確接收到離線數據Data2的判斷結果,終端設備A對存儲的離線數據Data2執行刪除操作。

優選地,步驟S120中將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方的步驟進一步包括步驟S121;步驟S121:將至少兩個離線數據通過同一長連接並行發送至對應的至少兩個請求方。

例如,在終端設備A通過同一長連接分別與終端設備B和終端設備C進行數據傳輸,當終端設備A確定終端設備B在離線期間對應的離線數據為Data1,並確定終端設備C在離線期間對應的離線數據為Data2,隨後終端設備A通過該同一長連接,將離線數據Data1和Data2分別並行發送至終端設備B和終端設備C。

需要說明的是,本領域技術人員可以了解到,長連接,指在一個連接上可以連續發送多個數據包,在連接保持期間,如果沒有數據包發送時需要雙方發鏈路檢測包。長連接使得在一個TCP連接的基礎之上,可以發送多個HTTP請求以及接收多個HTTP響應,從而避免每一次請求都去打開一個新的連接。通過使用長連接,可以減少CPU(Central Processing Unit,中央處理器)及內存的使用、減少網絡的堵塞、減少請求的響應時間以及當發生錯誤時,可以在不關閉連接的情況下進行提示等。因此,長連接被廣泛的應用於向終端設備推送各種服務和消息。

優選地,步驟S150依據判斷結果針對任一離線數據執行相應的處理操作,包括以下任一情形:

1)若判斷結果為任一離線數據被正確接收,刪除任一離線數據。例如,根據判斷結果為離線數據Data1的已被終端設備B正確接收,終端設備A對存儲的離線數據Data1執行刪除操作。

2)若判斷結果為任一離線數據未被正確接收,重新將任一離線數據發送至請求方。例如,根據判斷結果為離線數據Data1的未被終端設備B正確接收,終端設備A將存儲的離線數據Data1重新發送至終端設備B。

通過本實施例,能夠準確刪除無用的離線數據,增加離線數據存儲區域的存儲空間,提高離線數據存儲區域的數據存儲效率,同時避免了請求方在未接收到正確離線數據的情況下將離線數據進行刪除,而導致離線數據丟失的情況,進一步地,能夠避免因大量冗餘離線數據造成離線數據存儲區域存儲崩潰的情況發生。

優選地,該方法還包括步驟S160;步驟S160:依據預定的數據籤名生成方式,對多個離線數據進行籤名。

例如,在終端設備A通過同一長連接分別與終端設備B和終端設備C進行數據傳輸,當終端設備A確定終端設備B在離線期間對應的離線數據為Data1,並確定終端設備C在離線期間對應的離線數據為Data2,終端設備A依據預定的數據籤名生成方式,如計算MD5(Message Digest Algorithm MD5,消息摘要算法第五版)的值的數據籤名方式,分別對離線數據為Data1和Data2進行MD5計算,若離線數據Data1的數據內容為「hello」,進行MD5計算籤名後的值如「bc4b2a76b9719d91」,若離線數據Data2的數據內容為「world」,進行MD5計算籤名後的值如「a0760186574b0282」。

需要說明的是,本領域技術人員可以了解到,數據籤名的方式有多種,本發明實施例中會對離線數據以特定的數據籤名方式為例說明,但並不對此進行限制;且發送數據列表的存儲方式,可以為數據表的方式,也可以為鍊表方式,本發明實施例中會以特定的發送數據列表的方式為例說明,但並不對此進行限制。

其中,步驟S120將多個離線數據中的至少兩個並行發送至請求方進一步包括步驟S121;步驟S121:將多個離線數據中的至少兩個及各自相應的數據籤名並行發送至請求方。

例如,接上例,終端設備A將離線數據Data1的數據內容「hello」及Data1的MD5數據籤名「bc4b2a76b9719d91」發送至終端設備B,同時並行將離線數據Data2的數據內容「world」及Data2的MD5數據籤名「a0760186574b0282」發送至終端設備C。

其中,請求方返回的反饋信息中包括接收方根據接收到的任一離線數據生成的待驗證數據籤名。例如,終端設備B向終端設備A返回的反饋信息中包括終端設備B根據接收到的離線數據Data1生成的待驗證數據籤名「bc4b2a76b9719d91」;終端設備C向終端設備A返回的反饋信息中包括終端設備C根據接收到的離線數據Data2生成的待驗證數據籤名「a0760186574b0282」。

其中,步驟S140依據反饋信息判斷請求方是否已正確接收任一離線數據進一步包括步驟S141;步驟S141:比對反饋信息中的待驗證數據籤名與任一離線數據對應的數據籤名是否一致來判斷請求方是否已正確接收到任一離線數據。

例如,比對得到終端設備B的反饋信息中的待驗證數據籤名「bc4b2a76b9719d91」與離線數據Data1對應的MD5數據籤名「bc4b2a76b9719d91」一致,判斷終端設備B已正確接收到離線數據Data1;比對得到終端設備C的反饋信息中的待驗證數據籤名「a0760186574b0282」與離線數據Data2對應的MD5數據籤名「a0760186574b0282」一致,判斷終端設備C已正確接收到離線數據Data2。

通過本實施例,可快速判斷請求方是否已正確接收到任一離線數據,從而保證了離線數據能夠及時且準確地發送至請求方。

優選地,該方法還包括步驟S170;步驟S170:將多個離線數據存儲至預定的緩存區域中,並將多個離線數據存儲至預建立的資料庫中。

例如,終端設備A將離線數據Data1和Data2存儲至預定的緩存區域中,如緩存資料庫CacheDB,並將離線數據Data1和Data2存儲至預建立的資料庫中,如磁碟資料庫DB。

其中,步驟S160中對多個離線數據進行籤名的步驟之後還包括步驟S180;步驟S180:將與多個離線數據對應的數據籤名存儲至預定的緩存區域中。

例如,終端設備A將離線數據Data1的數據內容「hello」及Data1的MD5數據籤名「bc4b2a76b9719d91」存儲至緩存資料庫CacheDB,並將離線數據Data2的數據內容「world」及Data2的MD5數據籤名「a0760186574b0282」存儲至緩存資料庫CacheDB。

其中,步驟S140依據反饋信息判斷請求方是否已接收到正確的任一離線數據的步驟之前包括步驟S190;步驟S190:從緩存區域中提取反饋信息對應的離線數據的數據籤名。

例如,終端設備B向終端設備A返回的反饋信息中包括終端設備B根據接收到的離線數據Data1生成的待驗證數據籤名「bc4b2a76b9719d91」,則從緩存資料庫CacheDB中提取到該反饋信息對應的離線數據Data1的數據籤名,為「bc4b2a76b9719d91」。

優選地,步驟S150中若判斷結果為任一離線數據被正確接收,刪除任一離線數據,進一步包括步驟S151;步驟S151:若判斷結果為任一離線數據被正確接收,刪除預定的緩存區域中任一離線數據及相應的數據籤名的數據信息,並刪除預建立的資料庫中任一離線數據的數據記錄。

例如,比對得到終端設備B的反饋信息中的待驗證數據籤名「bc4b2a76b9719d91」與從緩存資料庫CacheDB中提取離線數據Data1對應的數據籤名「bc4b2a76b9719d91」一致,判斷終端設備B已正確接收到離線數據Data1,根據判斷結果為離線數據Data1被正確接收,刪除緩存資料庫CacheDB中存儲的離線數據Data1及相應的數據籤名「bc4b2a76b9719d91」,並刪除磁碟資料庫DB中離線數據Data1的數據記錄。

優選地,步驟S150中若判斷結果為任一離線數據未被正確接收,重新將任一離線數據發送至請求方,進一步包括步驟S152、步驟S153和步驟S154;步驟S152:若判斷結果為任一離線數據未被正確接收,刪除預定的緩存區域中任一離線數據及相應的數據籤名的數據信息;步驟S153:在預建立的資料庫中重新獲取任一離線數據的數據記錄,並存儲至預定的緩存區域;步驟S154:將重新獲取到的任一離線數據發送至請求方。

例如,若終端設備C向終端設備A返回的反饋信息中包括終端設備C根據接收到的離線數據Data2生成的待驗證數據籤名為「a0760186574b0283」,從緩存資料庫CacheDB中提取該反饋信息對應的離線數據Data2的數據籤名,為「a0760186574b0282」,比對得到終端設備C的反饋信息中的待驗證數據籤名「a0760186574b0283」與從緩存資料庫CacheDB中提取離線數據Data2對應的數據籤名「a0760186574b0282」不一致,判斷終端設備C未正確接收到離線數據Data2,根據判斷結果為離線數據Data2未被正確接收,刪除緩存資料庫CacheDB中離線數據Data2及相應的數據籤名「a0760186574b0282」;隨後在磁碟資料庫DB中重新獲取離線數據Data2的數據記錄,並存儲至緩存資料庫CacheDB,並將重新獲取到的離線數據Data2發送至終端設備C。

優選地,步驟S154進一步包括步驟S1541和步驟S1542;步驟S1541:依據預定的數據籤名生成方式,對重新發送的任一離線數據進行籤名;步驟S1542:將與任一離線數據對應的數據籤名存儲至預定的緩存區域中。

例如,接上例,依據預定計算MD5值的數據籤名方式,對重新獲取到的離線數據Data2進行籤名,離線數據Data2的數據內容為「world」得到的數據籤名為「a0760186574b0282」,隨後,將與離線數據Data2對應的數據籤名「a0760186574b0282」存儲至緩存資料庫CacheDB中與離線數據Data2對應的存儲位置。

通過本實施例,當多個連結同時寫同一長連接時,能夠保證數據的完整性,使得請求方無法獲取到非完整的數據,保證了請求方獲取到準確的離線數據。

圖2為本發明中另一實施例的發送離線消息的裝置的結構示意圖。

本發明的實施例中,各模塊所執行的內容概述如下:確定模塊210依據接收到的數據獲取請求確定對應的多個離線數據;發送模塊220將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方;接收模塊230接收請求方返回的針對任一離線數據的反饋信息;判斷模塊240依據反饋信息判斷請求方是否已正確接收到任一離線數據;執行模塊250依據判斷結果針對任一離線數據執行相應的處理操作。

本發明的實施例中,提出了一種發送離線消息的裝置,依據接收到的數據獲取請求確定對應的多個離線數據;將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方,實現了同時將離線數據及時地發送至各請求方,避免了各請求方同時請求獲取離線數據時可能會產生的其中至少一個請求方延遲接收離線數據的情況;接收請求方返回的針對任一離線數據的反饋信息,依據反饋信息判斷請求方是否已正確接收到任一離線數據,實現了準確地判斷請求方是否正確接收到任一離線數據,為後續針對任一離線數據執行相應的處理操作提供了必要的前提保障;依據判斷結果針對任一離線數據執行相應的處理操作,實現了根據不同的判斷結果,對任一離線數據執行不同的處理操作,避免了請求方在未接收到正確離線數據的情況下將離線數據進行刪除,而導致離線數據丟失的情況,進一步地,保證了請求方能夠接收到正確的離線數據。以下針對各個模塊的具體實現做進一步的說明:

確定模塊210用於依據接收到的數據獲取請求確定對應的多個離線數據。

具體地,依據接收到的至少兩個請求方發送的針對離線數據的數據獲取請求,確定對應的多個離線數據。

例如,在終端設備A與終端設備B、終端設備A與終端設備C的數據傳輸過程中,若終端設備B和終端設備C從離線狀態變更為在線狀態後,終端設備B和終端設備C向終端設備A發送離線數據的數據獲取請求,終端設備A依據接收到的數據獲取請求確定終端設備B在離線期間對應的離線數據為Data1,並確定終端設備C在離線期間對應的離線數據為Data2。

發送模塊220用於將多個離線數據中的至少兩個並行發送至對應的至少兩個請求方。

例如,接上例,終端設備A將離線數據Data1和Data2分別並行發送至終端設備B和終端設備C。

接收模塊230用於接收請求方返回的針對任一離線數據的反饋信息。

例如,終端設備A接收終端設備B返回的針對離線數據Data1的反饋信息和終端設備C返回的針對離線數據Data2的反饋信息。

判斷模塊240用於依據反饋信息判斷請求方是否已正確接收到任一離線數據。

例如,依據終端設備B返回的針對離線數據Data1的反饋信息,如「已接收到離線數據Data1」,終端設備A可判斷判斷終端設備B已正確接收到離線數據Data1;依據終端設備C返回的針對離線數據Data2的反饋信息,如「已接收到離線數據Data2」,終端設備A可判斷判斷終端設備C已正確接收到離線數據Data2。

需要說明的是,本領域技術人員可以了解到,發送反饋消息的方式還可以通過發送ACK(Acknowledgement,確認字符)包的形式進行消息反饋,本發明實施例中,會以特定形式的反饋消息為例說明,但並不對此進行限制。

執行模塊250用於依據判斷結果針對任一離線數據執行相應的處理操作。

例如,根據終端設備B已正確接收到離線數據Data1的判斷結果,終端設備A對存儲的離線數據Data1執行刪除操作;根據終端設備C已正確接收到離線數據Data2的判斷結果,終端設備A對存儲的離線數據Data2執行刪除操作。

優選地,發送模塊220進一步包括第一發送單元;第一發送單元用於將至少兩個離線數據通過同一長連接並行發送至對應的至少兩個請求方。

例如,在終端設備A通過同一長連接分別與終端設備B和終端設備C進行數據傳輸,當終端設備A確定終端設備B在離線期間對應的離線數據為Data1,並確定終端設備C在離線期間對應的離線數據為Data2,隨後終端設備A通過該同一長連接,將離線數據Data1和Data2分別並行發送至終端設備B和終端設備C。

需要說明的是,本領域技術人員可以了解到,長連接,指在一個連接上可以連續發送多個數據包,在連接保持期間,如果沒有數據包發送時需要雙方發鏈路檢測包。長連接使得在一個TCP連接的基礎之上,可以發送多個HTTP請求以及接收多個HTTP響應,從而避免每一次請求都去打開一個新的連接。通過使用長連接,可以減少CPU(Central Processing Unit,中央處理器)及內存的使用、減少網絡的堵塞、減少請求的響應時間以及當發生錯誤時,可以在不關閉連接的情況下進行提示等。因此,長連接被廣泛的應用於向終端設備推送各種服務和消息。

優選地,執行模塊250依據判斷結果針對任一離線數據執行相應的處理操作,包括以下任一情形:

1)若判斷結果為任一離線數據被正確接收,刪除任一離線數據。例如,根據判斷結果為離線數據Data1的已被終端設備B正確接收,終端設備A對存儲的離線數據Data1執行刪除操作。

2)若判斷結果為任一離線數據未被正確接收,重新將任一離線數據發送至請求方。例如,根據判斷結果為離線數據Data1的未被終端設備B正確接收,終端設備A將存儲的離線數據Data1重新發送至終端設備B。

通過本實施例,能夠準確刪除無用的離線數據,增加離線數據存儲區域的存儲空間,提高離線數據存儲區域的數據存儲效率,同時避免了請求方在未接收到正確離線數據的情況下將離線數據進行刪除,而導致離線數據丟失的情況,進一步地,能夠避免因大量冗餘離線數據造成離線數據存儲區域存儲崩潰的情況發生。

優選地,該裝置還包括第一籤名模塊;第一籤名模塊依據預定的數據籤名生成方式,對多個離線數據進行籤名。

例如,在終端設備A通過同一長連接分別與終端設備B和終端設備C進行數據傳輸,當終端設備A確定終端設備B在離線期間對應的離線數據為Data1,並確定終端設備C在離線期間對應的離線數據為Data2,終端設備A依據預定的數據籤名生成方式,如計算MD5(Message Digest Algorithm MD5,消息摘要算法第五版)的值的數據籤名方式,分別對離線數據為Data1和Data2進行MD5計算,若離線數據Data1的數據內容為「hello」,進行MD5計算籤名後的值如「bc4b2a76b9719d91」,若離線數據Data2的數據內容為「world」,進行MD5計算籤名後的值如「a0760186574b0282」。

需要說明的是,本領域技術人員可以了解到,數據籤名的方式有多種,本發明實施例中會對離線數據以特定的數據籤名方式為例說明,但並不對此進行限制;且發送數據列表的存儲方式,可以為數據表的方式,也可以為鍊表方式,本發明實施例中會以特定的發送數據列表的方式為例說明,但並不對此進行限制。

其中,發送模塊220用於將多個離線數據中的至少兩個及各自相應的數據籤名並行發送至請求方。

例如,接上例,終端設備A將離線數據Data1的數據內容「hello」及Data1的MD5數據籤名「bc4b2a76b9719d91」發送至終端設備B,同時並行將離線數據Data2的數據內容「world」及Data2的MD5數據籤名「a0760186574b0282」發送至終端設備C。

其中,請求方返回的反饋信息中包括接收方根據接收到的任一離線數據生成的待驗證數據籤名。例如,終端設備B向終端設備A返回的反饋信息中包括終端設備B根據接收到的離線數據Data1生成的待驗證數據籤名「bc4b2a76b9719d91」;終端設備C向終端設備A返回的反饋信息中包括終端設備C根據接收到的離線數據Data2生成的待驗證數據籤名「a0760186574b0282」。

其中,判斷模塊240用於比對反饋信息中的待驗證數據籤名與任一離線數據對應的數據籤名是否一致來判斷請求方是否已正確接收到任一離線數據。

例如,比對得到終端設備B的反饋信息中的待驗證數據籤名「bc4b2a76b9719d91」與離線數據Data1對應的MD5數據籤名「bc4b2a76b9719d91」一致,判斷終端設備B已正確接收到離線數據Data1;比對得到終端設備C的反饋信息中的待驗證數據籤名「a0760186574b0282」與離線數據Data2對應的MD5數據籤名「a0760186574b0282」一致,判斷終端設備C已正確接收到離線數據Data2。

通過本實施例,可快速判斷請求方是否已正確接收到任一離線數據,從而保證了離線數據能夠及時且準確地發送至請求方。

優選地,該裝置還包括第一存儲模塊;第一存儲模塊用於將多個離線數據存儲至預定的緩存區域中,並將多個離線數據存儲至預建立的資料庫中。

例如,終端設備A將離線數據Data1和Data2存儲至預定的緩存區域中,如緩存資料庫CacheDB,並將離線數據Data1和Data2存儲至預建立的資料庫中,如磁碟資料庫DB。

其中,對多個離線數據進行籤名之後還包括第二存儲模塊;第二存儲模塊用於將與多個離線數據對應的數據籤名存儲至預定的緩存區域中。

例如,終端設備A將離線數據Data1的數據內容「hello」及Data1的MD5數據籤名「bc4b2a76b9719d91」存儲至緩存資料庫CacheDB,並將離線數據Data2的數據內容「world」及Data2的MD5數據籤名「a0760186574b0282」存儲至緩存資料庫CacheDB。

其中,依據反饋信息判斷請求方是否已接收到正確的任一離線數據之前包括提取模塊;提取模塊用於從緩存區域中提取反饋信息對應的離線數據的數據籤名。

例如,終端設備B向終端設備A返回的反饋信息中包括終端設備B根據接收到的離線數據Data1生成的待驗證數據籤名「bc4b2a76b9719d91」,則從緩存資料庫CacheDB中提取到該反饋信息對應的離線數據Data1的數據籤名,為「bc4b2a76b9719d91」。

優選地,若判斷結果為任一離線數據被正確接收,刪除任一離線數據,執行模塊250進一步包括第一刪除單元;第一刪除單元用於若判斷結果為任一離線數據被正確接收,刪除預定的緩存區域中任一離線數據及相應的數據籤名的數據信息,並刪除預建立的資料庫中任一離線數據的數據記錄。

例如,比對得到終端設備B的反饋信息中的待驗證數據籤名「bc4b2a76b9719d91」與從緩存資料庫CacheDB中提取離線數據Data1對應的數據籤名「bc4b2a76b9719d91」一致,判斷終端設備B已正確接收到離線數據Data1,根據判斷結果為離線數據Data1被正確接收,刪除緩存資料庫CacheDB中存儲的離線數據Data1及相應的數據籤名「bc4b2a76b9719d91」,並刪除磁碟資料庫DB中離線數據Data1的數據記錄。

優選地,若判斷結果為任一離線數據未被正確接收,重新將任一離線數據發送至請求方,執行模塊250進一步包括第二刪除單元、獲取單元和第二發送單元;第二刪除單元用於若判斷結果為任一離線數據未被正確接收,刪除預定的緩存區域中任一離線數據及相應的數據籤名的數據信息;獲取單元用於在預建立的資料庫中重新獲取任一離線數據的數據記錄,並存儲至預定的緩存區域;第二發送單元用於將重新獲取到的任一離線數據發送至請求方。

例如,若終端設備C向終端設備A返回的反饋信息中包括終端設備C根據接收到的離線數據Data2生成的待驗證數據籤名為「a0760186574b0283」,從緩存資料庫CacheDB中提取該反饋信息對應的離線數據Data2的數據籤名,為「a0760186574b0282」,比對得到終端設備C的反饋信息中的待驗證數據籤名「a0760186574b0283」與從緩存資料庫CacheDB中提取離線數據Data2對應的數據籤名「a0760186574b0282」不一致,判斷終端設備C未正確接收到離線數據Data2,根據判斷結果為離線數據Data2未被正確接收,刪除緩存資料庫CacheDB中離線數據Data2及相應的數據籤名「a0760186574b0282」;隨後在磁碟資料庫DB中重新獲取離線數據Data2的數據記錄,並存儲至緩存資料庫CacheDB,並將重新獲取到的離線數據Data2發送至終端設備C。

優選地,該裝置還包括第二籤名模塊和第三存儲模塊;第二籤名模塊用於依據預定的數據籤名生成方式,對重新發送的任一離線數據進行籤名;第三存儲模塊用於將與任一離線數據對應的數據籤名存儲至預定的緩存區域中。

例如,接上例,依據預定計算MD5值的數據籤名方式,對重新獲取到的離線數據Data2進行籤名,離線數據Data2的數據內容為「world」得到的數據籤名為「a0760186574b0282」,隨後,將與離線數據Data2對應的數據籤名「a0760186574b0282」存儲至緩存資料庫CacheDB中與離線數據Data2對應的存儲位置。

通過本實施例,當多個連結同時寫同一長連接時,能夠保證數據的完整性,使得請求方無法獲取到非完整的數據,保證了請求方獲取到準確的離線數據。

本技術領域技術人員可以理解,本發明包括涉及用於執行本申請中所述操作中的一項或多項的設備。這些設備可以為所需的目的而專門設計和製造,或者也可以包括通用計算機中的已知設備。這些設備具有存儲在其內的電腦程式,這些電腦程式選擇性地激活或重構。這樣的電腦程式可以被存儲在設備(例如,計算機)可讀介質中或者存儲在適於存儲電子指令並分別耦聯到總線的任何類型的介質中,所述計算機可讀介質包括但不限於任何類型的盤(包括軟盤、硬碟、光碟、CD-ROM、和磁光碟)、ROM(Read-Only Memory,只讀存儲器)、RAM(Random Access Memory,隨即存儲器)、EPROM(Erasable Programmable Read-Only Memory,可擦寫可編程只讀存儲器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,電可擦可編程只讀存儲器)、快閃記憶體、磁性卡片或光線卡片。也就是,可讀介質包括由設備(例如,計算機)以能夠讀的形式存儲或傳輸信息的任何介質。

本技術領域技術人員可以理解,可以用電腦程式指令來實現這些結構圖和/或框圖和/或流圖中的每個框以及這些結構圖和/或框圖和/或流圖中的框的組合。本技術領域技術人員可以理解,可以將這些電腦程式指令提供給通用計算機、專業計算機或其他可編程數據處理方法的處理器來實現,從而通過計算機或其他可編程數據處理方法的處理器來執行本發明公開的結構圖和/或框圖和/或流圖的框或多個框中指定的方案。

本技術領域技術人員可以理解,本發明中已經討論過的各種操作、方法、流程中的步驟、措施、方案可以被交替、更改、組合或刪除。進一步地,具有本發明中已經討論過的各種操作、方法、流程中的其他步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。進一步地,現有技術中的具有與本發明中公開的各種操作、方法、流程中的步驟、措施、方案也可以被交替、更改、重排、分解、組合或刪除。

以上所述僅是本發明的部分實施方式,應當指出,對於本技術領域的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應視為本發明的保護範圍。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀