一種數(shù)據(jù)推送方法及其Flash客戶端和服務器的制造方法
【專利摘要】本發(fā)明公開了一種數(shù)據(jù)推送方法及其Flash客戶端和服務器?;贔lash客戶端的數(shù)據(jù)推送方法包括:向服務器端發(fā)送socket連接請求;接收服務器端返回的連接操作結果;向服務器端發(fā)送數(shù)據(jù)訂閱條件;接收服務器端根據(jù)訂閱條件將原始數(shù)據(jù)附加客戶端的標簽、編碼、壓縮后的推送數(shù)據(jù);對所述推送數(shù)據(jù)進行解壓縮。本發(fā)明基于socket連接技術的基礎上,運用數(shù)據(jù)訂閱、AMF編碼和數(shù)據(jù)壓縮技術,可有效地建設網(wǎng)絡寬帶使用、減少消息量和減輕服務器和客戶端的資源開銷。
【專利說明】一種數(shù)據(jù)推送方法及其Flash客戶端和服務器
【技術領域】
[0001]本發(fā)明涉及計算機【技術領域】,尤其涉及一種數(shù)據(jù)推送方法及其Flash客戶端和服務器。
【背景技術】
[0002]目前在瀏覽器中運行的Flash客戶端應用獲取服務器數(shù)據(jù)是基于HTTP協(xié)議(Hyper Text Transfer Protocol,超文本傳送協(xié)議)。有兩種方式:短連接周期輪詢方式,長鏈接堵塞方式。
[0003]短連接周期輪詢方式,客戶端周期性的與服務端建立HTTP連接,輪詢獲取數(shù)據(jù),然后釋放鏈接。這種連接方式具有以下缺點:由于不停的創(chuàng)建和釋放連接,使得客戶端和服務端的資源開銷較大;另一方面,數(shù)據(jù)及時性依賴于輪詢周期。再者,當客戶端處理接收的數(shù)據(jù)、重新建立連接時,服務器端可能有新的數(shù)據(jù)到達,這些信息會被服務器端保存直到客戶端重新建立連接,客戶端會一次把當前服務器端所有的信息取回,服務端需要緩存大量數(shù)據(jù),增加服務端負擔和復雜度。
[0004]長鏈接堵塞方式,客戶端和服務端建立HTTP連接,不關閉連接,直到會話結束。但瀏覽器默認對同一域下的資源,并發(fā)連接數(shù)是有限制的,一般不超過4個,所以這種方式會嚴重影響客戶端對同域下資源的訪問速度,嚴重情況下會堵塞其它訪問,導致客戶端應用不可用。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的旨在解決采用短連接周期輪詢方式帶來的Flash客戶端與服務器端資源開銷大、服務器端負擔和復雜度大以及采用長鏈接堵塞方式導致客戶端訪問速度慢等問題,從而提供一種數(shù)據(jù)推送方法及其Flash客戶端和服務器。
[0006]根據(jù)本發(fā)明的一個方面,提供了基于Flash客戶端的數(shù)據(jù)推送方法。該方法包括:向服務器端發(fā)送socket連接請求;接收服務器端返回的連接操作結果;向服務器端發(fā)送其數(shù)據(jù)訂閱條件;接收服務器端根據(jù)訂閱條件將原始數(shù)據(jù)附加客戶端的標簽、編碼、壓縮后的推送數(shù)據(jù);對所述推送數(shù)據(jù)進行解壓縮。
[0007]根據(jù)本發(fā)明的另一方面,提供了一種Flash客戶端。該客戶端包括:發(fā)送模塊,用于向服務器發(fā)送socket連接請求和發(fā)送數(shù)據(jù)訂閱條件;接收模塊,用于接收服務器返回的連接操作結果和推送數(shù)據(jù);解壓模塊,用于對所述推送數(shù)據(jù)進行解壓縮。
[0008]根據(jù)本發(fā)明的又一方面,提供了基于服務器端的數(shù)據(jù)推送方法。該方法包括:與Flash客戶端建立socket連接;向Flash客戶端發(fā)送連接操作結果;接收Flash客戶端發(fā)送數(shù)據(jù)訂閱條件;根據(jù)所述Flash客戶端訂閱條件,將原始數(shù)據(jù)附加客戶端的標簽、編碼和壓縮,形成壓縮的編碼數(shù)據(jù);將壓縮的編碼數(shù)據(jù)通過socket推送到與標簽對應的客戶端。
[0009]根據(jù)本發(fā)明的又一方面,提供了一種數(shù)據(jù)推送服務器。該服務器包括:接收模塊,用于接收Flash客戶端socket連接請求和數(shù)據(jù)訂閱條件;處理模塊,用于響應客戶端請求,建立socket連接,根據(jù)數(shù)據(jù)訂閱條件對原始數(shù)據(jù)附加客戶端的標簽、編碼和壓縮;發(fā)送模塊,用于向Flash客戶端發(fā)送連接操作結果和推送壓縮的編碼數(shù)據(jù)。
[0010]本發(fā)明基于Flash客戶端與服務器端創(chuàng)建socket連接的基礎上,通過Flash客戶端向服務器端發(fā)送數(shù)據(jù)訂閱條件,服務器端僅需把客戶端所需數(shù)據(jù)發(fā)送給客戶端,可有效地較少消息量;另外,服務器端在處理數(shù)據(jù)中,對數(shù)據(jù)進行AMF編碼,可減輕客戶端的資源開銷;再者,服務器端對編碼的數(shù)據(jù)進行數(shù)據(jù)壓縮,可有效地假設網(wǎng)絡寬帶使用。
【專利附圖】
【附圖說明】
[0011]圖1為根據(jù)本發(fā)明實施例的系統(tǒng)框架圖;
[0012]圖2為根據(jù)本發(fā)明實施例的基于Flash客戶端的數(shù)據(jù)推送方法流程圖;
[0013]圖3為根據(jù)本發(fā)明實施例的基于服務器的數(shù)據(jù)推送方法流程圖;
[0014]圖4為根據(jù)本發(fā)明實施例的數(shù)據(jù)訂閱流程圖;
[0015]圖5為根據(jù)本發(fā)明實施例的Flash客戶端框圖;以及
[0016]圖6為根據(jù)本發(fā)明實施例的服務器的框圖。
【具體實施方式】
[0017]下面結合附圖和具體實施例對本發(fā)明進行詳細、清楚、完整的說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。
[0018]圖1為根據(jù)本發(fā)明實施例的系統(tǒng)框架圖。
[0019]如圖1所示,F(xiàn)lash客戶端請求服務器端創(chuàng)建Socket連接,服務器端返回連接操作結果,由Flash客戶端向服務器發(fā)送數(shù)據(jù)訂閱條件,服務器端根據(jù)數(shù)據(jù)訂閱條件對原始數(shù)據(jù)進行一系列處理,然后向Flash客戶端返回其所需要的數(shù)據(jù)。其中,Socket通常也稱作〃套接字",用于描述IP地址和端口,是一個通信鏈的句柄。應用程序通常通過〃套接字〃向網(wǎng)絡發(fā)出請求或者應答網(wǎng)絡請求。一個Flash客戶端與服務端創(chuàng)建Socket連接后,在會話過程中可以不關閉連接,與“短連接周期輪詢方式”相比,可以節(jié)省不停連接創(chuàng)建和釋放的資源消耗,另外由于連接一直存在,可以使得消息及時推送給Flash客戶端。由于Flash客戶端與服務端創(chuàng)建Socket連接的數(shù)據(jù)量不受瀏覽器的限制,Socket連接也不影響瀏覽器創(chuàng)建HTTP連接,所以有效的避免了 “長鏈接堵塞方式”的弊端。
[0020]圖2為根據(jù)本發(fā)明實施例的基于Flash客戶端的數(shù)據(jù)推送方法流程圖。
[0021]在步驟201中,向服務器端發(fā)送socket連接請求。
[0022]在步驟202中,接收服務器端返回的連接操作結果,如連接成功或連接失敗。
[0023]在步驟203中,向服務器端發(fā)送其數(shù)據(jù)訂閱條件,即發(fā)送客戶端需要的數(shù)據(jù)屬性給服務器端。
[0024]在步驟204中,接收服務器端根據(jù)過濾條件將原始數(shù)據(jù)附加客戶端的標簽、編碼、壓縮后的推送數(shù)據(jù)。其中,F(xiàn)lash客戶端接收服務器端的推送數(shù)據(jù)為壓縮的AMF格式的編碼數(shù)據(jù)。
[0025]在步驟205中,對所述推送數(shù)據(jù)進行解壓縮,解壓縮后的數(shù)據(jù)即為AMF格式的編碼數(shù)據(jù),這樣Flash客戶端可直接使用。其中,F(xiàn)lash客戶端對服務器端推送的數(shù)據(jù)通過ZIP或RAR數(shù)據(jù)壓縮方式中的一種進行解壓縮。
[0026]圖3為根據(jù)本發(fā)明實施例的基于服務器的數(shù)據(jù)推送方法流程圖。
[0027]在步驟301中,與Flash客戶端建立socket連接。
[0028]在步驟302中,向Flash客戶端發(fā)送連接操作結果。
[0029]在步驟303中,接收Flash客戶端發(fā)送數(shù)據(jù)訂閱條件。
[0030]在步驟304中,根據(jù)所述Flash客戶端過濾條件,將原始數(shù)據(jù)附加客戶端的標簽、編碼和壓縮,形成壓縮的編碼數(shù)據(jù)。具體地,將原始數(shù)據(jù)與客戶端訂閱條件進行匹配,匹配成功后將原始數(shù)據(jù)附加客戶端的標簽,形成一個客戶端標簽列表。將附加客戶端標簽的數(shù)據(jù)基于AMF協(xié)議進行編碼,形成AMF格式的編碼數(shù)據(jù)。將編碼的數(shù)據(jù)經(jīng)ZIP或RAR數(shù)據(jù)壓縮方式中的一種實現(xiàn)數(shù)據(jù)壓縮,形成壓縮的編碼數(shù)據(jù)。其中,AMF協(xié)議是Action MessageFormat協(xié)議的簡稱,AMF協(xié)議是Adobe公司的協(xié)議,主要用于數(shù)據(jù)交互和遠程過程調(diào)用,AMF與xml不同在于AMF是二進制數(shù)據(jù),而xml是文本數(shù)據(jù),AMF的傳輸效率比xml高。
[0031]在步驟305中,將壓縮的編碼數(shù)據(jù)通過socket推送到與標簽對應的客戶端。
[0032]圖4為根據(jù)本發(fā)明實施例的數(shù)據(jù)訂閱流程圖。
[0033]如圖4所示,設有A、B、C三個Flash客戶端與服務器端建立socket連接,并均向服務器端發(fā)送數(shù)據(jù)訂閱條件,服務器分析原始數(shù)據(jù)只符合(匹配)客戶端A和客戶端B的訂閱條件,則對原始數(shù)據(jù)附加客戶端A和客戶端B的標簽,形成客戶端標簽列表AB,然后對附加客戶端標簽的原始數(shù)據(jù)進行AMF編碼,編碼后的數(shù)據(jù)再經(jīng)ZIP或RAR進行壓縮,形成壓縮后的編碼數(shù)據(jù),根據(jù)客戶端標簽列表AB,就將壓縮的數(shù)據(jù)分別發(fā)送到相應的客戶端A和客戶端B上,由于客戶端標簽列表AB中無客戶端標簽C,所以服務器端不向其發(fā)送數(shù)據(jù)。
[0034]圖5為根據(jù)本發(fā)明實施例的Flash客戶端框圖。
[0035]如圖5所示,本發(fā)明實施例的Flash客戶端包括發(fā)送模塊,用于向服務器發(fā)送socket連接請求和發(fā)送數(shù)據(jù)訂閱條件;接收模塊,用于接收服務器返回的連接操作結果和推送數(shù)據(jù);解壓模塊,用于對所述推送數(shù)據(jù)進行解壓縮,以便Flash客戶端直接使用。
[0036]在圖5的實施方式中,接收模塊接收服務器端的推送數(shù)據(jù)為壓縮的AMF格式的編碼數(shù)據(jù)。解壓模塊對推送數(shù)據(jù)通過ZIP或RAR數(shù)據(jù)壓縮方式中的一種進行解壓縮。
[0037]圖6為根據(jù)本發(fā)明實施例的服務器的框圖。
[0038]如圖6所示,本發(fā)明實施例的服務器包括:接收模塊,用于接收Flash客戶端socket連接請求和數(shù)據(jù)訂閱條件;處理模塊,用于響應客戶端請求,建立socket連接,根據(jù)數(shù)據(jù)訂閱條件對原始數(shù)據(jù)附加客戶端的標簽、編碼和壓縮;發(fā)送模塊,用于向Flash客戶端發(fā)送連接操作結果和推送壓縮的編碼數(shù)據(jù)。
[0039]在圖6的實施方式中,處理模塊將原始數(shù)據(jù)附加客戶端的標簽具體包括:將原始數(shù)據(jù)與客戶端訂閱條件進行匹配;匹配成功后將原始數(shù)據(jù)附加客戶端的標簽,形成一個客戶端標簽列表。處理模塊將附加客戶端標簽的數(shù)據(jù)進行編碼是基于AMF協(xié)議實現(xiàn)的,形成AMF格式的編碼數(shù)據(jù)。處理模塊將編碼數(shù)據(jù)進行壓縮是通過ZIP或RAR數(shù)據(jù)壓縮方式中的一種實現(xiàn)。
[0040]以上所述的【具體實施方式】,對本發(fā)明的目的、技術方案和有益效果進行了進一步詳細說明,所應理解的是,以上所述僅為本發(fā)明的【具體實施方式】而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.基于Flash客戶端的數(shù)據(jù)推送方法,包括以下步驟: 向服務器端發(fā)送socket連接請求; 接收服務器端返回的連接操作結果; 向服務器端發(fā)送其數(shù)據(jù)訂閱條件; 接收服務器端根據(jù)訂閱條件將原始數(shù)據(jù)附加客戶端的標簽、編碼、壓縮后的推送數(shù)據(jù); 將所述推送數(shù)據(jù)進行解壓縮。
2.根據(jù)權利要求1所述的方法,其特征在于,所述Flash客戶端接收服務器端的推送數(shù)據(jù)為壓縮的AMF格式的編碼數(shù)據(jù)。
3.根據(jù)權利要求1所述的方法,其特征在于,所述Flash客戶端將所述推送數(shù)據(jù)通過ZIP或RAR數(shù)據(jù)壓縮方式中的一種進行解壓縮。
4.一種Flash客戶端,其特征在于,包括: 發(fā)送模塊,用于向服務器發(fā)送socket連接請求和發(fā)送數(shù)據(jù)訂閱條件; 接收模塊,用于接收服務器返回的連接操作結果和推送數(shù)據(jù); 解壓模塊,用于將所述推送數(shù)據(jù)進行解壓縮。
5.根據(jù)權利要求4所述`的Flash客戶端,其特征在于,所述接收模塊接收服務器端的推送數(shù)據(jù)為壓縮的AMF格式的編碼數(shù)據(jù)。
6.根據(jù)權利要求4所述的Flash客戶端,其特征在于,所述解壓模塊將所述推送數(shù)據(jù)通過ZIP或RAR數(shù)據(jù)壓縮方式中的一種進行解壓縮。
7.基于服務器端的數(shù)據(jù)推送方法,包括以下步驟: 與Flash客戶端建立socket連接; 向Flash客戶端發(fā)送連接操作結果; 接收Flash客戶端發(fā)送數(shù)據(jù)訂閱條件; 根據(jù)所述Flash客戶端訂閱條件,將原始數(shù)據(jù)附加客戶端的標簽、編碼和壓縮,形成壓縮的編碼數(shù)據(jù); 將壓縮的編碼數(shù)據(jù)通過socket推送到與標簽對應的客戶端。
8.根據(jù)權利要求7所述的方法,其特征在于,所述服務器端將原始數(shù)據(jù)附加客戶端的標簽具體包括: 將原始數(shù)據(jù)與一個或多個客戶端訂閱條件進行匹配; 匹配成功后將原始數(shù)據(jù)附加客戶端的標簽,形成一個客戶端標簽列表。
9.根據(jù)權利要求7所述的方法,其特征在于,所述將附加客戶端標簽的數(shù)據(jù)通過AMF協(xié)議實現(xiàn)數(shù)據(jù)的編碼。
10.根據(jù)權利要求7所述的方法,其特征在于,所述將編碼后的數(shù)據(jù)通過ZIP或RAR中的一種方式實現(xiàn)數(shù)據(jù)的壓縮。
11.一種數(shù)據(jù)推送服務器,其特征在于,包括: 接收模塊,用于接收Flash客戶端socket連接請求和數(shù)據(jù)訂閱條件; 處理模塊,用于響應客戶端請求,建立socket連接,根據(jù)數(shù)據(jù)訂閱條件將原始數(shù)據(jù)附加客戶端的標簽、編碼和壓縮; 發(fā)送模塊,用于向Flash客戶端發(fā)送連接操作結果和推送壓縮的編碼數(shù)據(jù)。
12.根據(jù)權利要求11所述的數(shù)據(jù)推送服務器,其特征在于,所述處理模塊將原始數(shù)據(jù)進行標簽具體包括: 將原始數(shù)據(jù)與一個或多個客戶端訂閱條件進行匹配; 匹配成功后將原始數(shù)據(jù)附加客戶端的標簽,形成一個客戶端標簽列表。
13.根據(jù)權利要求11所述的數(shù)據(jù)推送服務器,其特征在于,所述處理模塊將附加客戶端標簽的數(shù)據(jù)通過AMF協(xié)議實現(xiàn)數(shù)據(jù)的編碼。
14.根據(jù)權利要求11所述的數(shù)據(jù)推送服務器,其特征在于,所述處理模塊將編碼數(shù)據(jù)通過ZIP或RAR中的一種方式實現(xiàn)數(shù)據(jù)壓縮。
【文檔編號】H04L29/06GK103516788SQ201310418453
【公開日】2014年1月15日 申請日期:2013年9月13日 優(yōu)先權日:2013年9月13日
【發(fā)明者】黃捷, 趙志宏, 卞臻, 易鴻鵬, 李功科 申請人:杭州東方通信軟件技術有限公司