程的步驟的可執行指令的代碼的模塊、片段或部分,并且本申請的優選實施方式的范圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本申請的實施例所屬技術領域的技術人員所理解。
[0076]應當理解,本申請的各部分可以用硬件、軟件、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟件或固件來實現。例如,如果用硬件來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用于對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現場可編程門陣列(FPGA)等。
[0077]本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
[0078]此外,在本申請各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現,也可以采用軟件功能模塊的形式實現。所述集成的模塊如果以軟件功能模塊的形式實現并作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
[0079]上述提到的存儲介質可以是只讀存儲器,磁盤或光盤等。
[0080]在本說明書的描述中,參考術語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結合該實施例或示例描述的具體特征、結構、材料或者特點包含于本申請的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進行結合和組合。
[0081]盡管上面已經示出和描述了本申請的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本申請的限制,本領域的普通技術人員在本申請的范圍內可以對上述實施例進行變化、修改、替換和變型。
【主權項】
1.一種信息推送系統,其特征在于,包括服務器和客戶端,其中,所述服務器和所述客戶端之間通過SPDY協議進行通信,且所述服務器和所述客戶端之間具有長連接,其中, 所述客戶端,用于與所述服務器通過所述長連接建立長連接數據流和至少一個普通數據流,其中,所述客戶端通過所述長連接數據流接收所述服務器的推送信息包,并通過所述至少一個普通數據流向所述服務器發送業務數據請求或信息確認包,以及在接收到所述服務器反饋的所述業務數據請求對應的數據包或返回的信息確認包之后關閉對應的普通數據流;以及 所述服務器,用于通過所述長連接數據流將所述推送信息包發送至所述客戶端,并通過所述至少一個普通數據流向所述客戶端返回所述業務數據請求對應的業務數據包或信息確認包,以及在反饋所述業務數據包或信息確認包之后關閉對應的普通數據流。2.如權利要求1所述的信息推送系統,其特征在于,所述長連接數據流和至少一個普通數據流各自分別具有標識,在所述客戶端和所述服務器之間傳輸的數據包中具有所述數據包所屬長連接數據流或至少一個普通數據流所對應的標識。3.如權利要求1所述的信息推送系統,其特征在于,當所述客戶端與所述服務器建立長連接數據流之前, 所述客戶端,還用于向所述服務器發送長連接數據流建立請求,其中,所述長連接數據流建立請求具有所述長連接數據流的標識及關閉標識位。4.如權利要求1所述的信息推送系統,其特征在于,所述服務器還用于在所述長連接數據流建立完成之后,通過所述長連接數據流向所述客戶端返回應答包或推送信息包,其中,所述應答包或推送信息包具有所述長連接數據流的標識及非關閉標識位。5.如權利要求1所述的信息推送系統,其特征在于,當所述客戶端與所述服務器建立普通數據流時, 所述客戶端,還用于向所述服務器發送業務數據請求或信息確認包,其中,所述業務數據請求或信息確認包具有所述普通數據流的標識及關閉標識位;以及 所述服務器,還用于向所述客戶端返回對應的業務數據包或信息確認包,其中,所述業務數據包或信息確認包具有所述普通數據流的標識及關閉標識位,其中,在所述客戶端接收到所述業務數據包或信息確認包之后,所述客戶端和所述服務器關閉所述普通數據流。6.如權利要求1所述的信息推送系統,其特征在于,所述客戶端,還用于如果在第一預設時間內未接收到所述服務器反饋的推送信息包、業務數據包或信息確認包,則向所述服務器發送心跳包以檢測所述長連接數據流是否斷開。7.如權利要求6所述的信息推送系統,其特征在于,所述服務器,還用于在第二預設時間內未收到所述客戶端發送的心跳包時,向所述客戶端發送心跳包以檢測所述長連接數據流是否斷開。8.如權利要求1所述的信息推送系統,其特征在于,所述服務器,還用于在接收到所述客戶端的業務數據請求之后,獲取所述業務數據請求對應的主資源和子資源,并將所述主資源和子資源返回至所述客戶端。9.如權利要求1所述的信息推送系統,其特征在于,所述服務器通過業務數據包將所述主資源返回至所述客戶端,其中,所述業務數據包中具有子資源標簽。10.如權利要求1所述的信息推送系統,其特征在于,所述服務器,還用于建立多個內存池,每個所述內存池具有不同的生命周期,并根據對應的生命周期對所述內存池進行管理。11.一種信息推送方法,其特征在于,服務器和客戶端之間通過SPDY協議進行通信,且所述服務器和所述客戶端之間具有長連接,所述方法包括以下步驟: 所述客戶端與所述服務器通過所述長連接建立長連接數據流和至少一個普通數據流,其中,所述客戶端通過所述長連接數據流接收所述服務器的推送信息包,并通過所述至少一個普通數據流向所述服務器發送業務數據請求或信息確認包; 所述服務器通過所述長連接數據流將所述推送信息包發送至所述客戶端,并通過所述至少一個普通數據流向所述客戶端返回所述業務數據請求對應的業務數據包或信息確認包;以及 所述客戶端在接收到所述服務器反饋的所述業務數據請求對應的數據包或返回的信息確認包之后關閉對應的普通數據流,以及所述服務器在反饋所述業務數據包或信息確認包之后關閉對應的普通數據流。12.如權利要求11所述的信息推送方法,其特征在于,所述長連接數據流和至少一個普通數據流各自分別具有標識,在所述客戶端和所述服務器之間傳輸的數據包中具有所述數據包所屬長連接數據流或至少一個普通數據流所對應的標識。13.如權利要求11所述的信息推送方法,其特征在于, 當所述客戶端與所述服務器建立長連接數據流之前,所述客戶端向所述服務器發送長連接數據流建立請求,其中,所述長連接數據流建立請求具有所述長連接數據流的標識及關閉標識位。14.如權利要求11所述的信息推送方法,其特征在于,在所述長連接數據流建立完成之后,所述服務器通過所述長連接數據流向所述客戶端返回應答包或推送信息包,其中,所述應答包或推送信息包具有所述長連接數據流的標識及非關閉標識位。15.如權利要求11所述的信息推送方法,其特征在于, 當所述客戶端與所述服務器建立普通數據流時,所述客戶端向所述服務器發送業務數據請求或信息確認包,其中,所述業務數據請求或信息確認包具有所述普通數據流的標識及關閉標識位; 所述服務器向所述客戶端返回對應的業務數據包或信息確認包,其中,所述業務數據包或信息確認包具有所述普通數據流的標識及關閉標識位;以及 在所述客戶端接收到所述業務數據包或信息確認包之后,所述客戶端和所述服務器關閉所述普通數據流。16.如權利要求11所述的信息推送方法,其特征在于,還包括: 如果在第一預設時間內未接收到所述服務器反饋的推送信息包、業務數據包或信息確認包,則所述客戶端向所述服務器發送心跳包以檢測所述長連接數據流是否斷開。17.如權利要求16所述的信息推送方法,其特征在于,還包括: 在第二預設時間內未收到所述客戶端發送的心跳包時,所述服務器向所述客戶端發送心跳包以檢測所述長連接數據流是否斷開。18.如權利要求11所述的信息推送方法,其特征在于,還包括:所述服務器在接收到所述客戶端的業務數據請求之后,獲取所述業務數據請求對應的主資源和子資源,并將所述主資源和子資源返回至所述客戶端。19.如權利要求11所述的信息推送方法,其特征在于,還包括: 所述服務器通過業務數據包將所述主資源返回至所述客戶端,其中,所述業務數據包中具有子資源標簽。20.如權利要求11所述的信息推送方法,其特征在于,還包括: 所述服務器建立多個內存池,每個所述內存池具有不同的生命周期,并根據對應的生命周期對所述內存池進行管理。
【專利摘要】本申請提出一種信息推送系統及方法,其中該系統包括服務器和客戶端,其之間通過SPDY協議進行通信,且具有長連接,其中客戶端用于與服務器通過長連接建立長連接數據流和普通數據流,通過長連接數據流接收服務器的推送信息包,并通過普通數據流向服務器發送業務數據請求或信息確認包,以及在接收到服務器反饋的業務數據請求對應的數據包或返回的信息確認包之后關閉對應的普通數據流;服務器用于通過長連接數據流將推送信息包發送至客戶端,并通過普通數據流向客戶端返回業務數據請求對應的業務數據包或信息確認包,并在反饋完成之后關閉對應的普通數據流。本申請實施例的系統可減少連接的管理成本、時間成本和帶寬成本,節省終端的電量。
【IPC分類】H04L29/08
【公開號】CN105516221
【申請號】CN201410495792
【發明人】陳虓將, 劉彥梅
【申請人】阿里巴巴集團控股有限公司
【公開日】2016年4月20日
【申請日】2014年9月24日