新四季網

一種向客戶端推送消息的方法

2023-06-01 06:27:01 1

一種向客戶端推送消息的方法
【專利摘要】本發明提供一種向客戶端推送消息的方法,包括:一種向客戶端推送消息的方法,應用於包括伺服器端和客戶端的通信系統中,其特徵在於,包括:所述客戶端創建連接線程的步驟;所述客戶端通過所述連接線程與所述伺服器建立持久連接的步驟;所述客戶端通過所述持久連接向所述伺服器註冊用戶的步驟;所述客戶端通過所述持久連接登錄所述伺服器的步驟;所述伺服器通過所述持久連接向所述客戶端推送消息的步驟。本發明的向智能客戶終端主動推送消息的方法成本低,消耗帶寬和電量小,並且消息更新及時。
【專利說明】一種向客戶端推送消息的方法
【技術領域】
[0001]本發明涉及一種推送消息的方法,特別是涉及一種向智能客戶端及時推送消息的方法。
【背景技術】
[0002]隨著使用智慧型手機的人越來越多,智慧型手機的處理能力越來越強大,智慧型手機聯網的需求越來越強,尤其是對推送消息的需求越來越強,比如實時更新消息,即時信息分享
坐坐寸寸o
[0003]常見的推送技術方案有如下幾種:
[0004]伺服器端通過SMS和客戶端的通信,這是一個可以實時操作的方案,不過成本較高,因為需要向運營商或者代理購買短消息發送網關。
[0005]客戶端定時訪問伺服器埠,主動定時獲取最新消息;這種方案需要考慮主動獲取信息的頻率,太快則消耗大量的帶寬和電量,太慢則導致消息不能及時更新。

【發明內容】

[0006]鑑於以上所述現有技術的缺點,本發明的目的在於提供一種向客戶端推送消息的方法,用於解決現有技術成本高,消耗帶寬和電量大或消息不能及時更新的問題。
[0007]為實現上述目的及其他相關目的,本發明提供一種向客戶端推送消息的方法,包括:一種向客戶端推送消息的方法,應用於包括伺服器端和客戶端的通信系統中,其特徵在於,包括:所述客戶端創建連接線程的步驟;所述客戶端通過所述連接線程與所述伺服器建立持久連接的步驟;所述客戶端通過所述持久連接向所述伺服器註冊用戶的步驟;所述客戶端通過所述持久連接登錄所述伺服器的步驟;所述伺服器通過所述持久連接向所述客戶端推送消息的步驟。
[0008]優選地,上述客戶端通過所述持久連接登錄所述伺服器的步驟與所述伺服器通過所述持久連接向所述客戶端推送消息的步驟之間,還包括所述客戶端註冊監聽器的步驟,所述監聽器監聽伺服器推送的數據包,再通知要進行顯示的程序。
[0009]更優選地,根據權利要求1所述的向客戶端推送消息的方法,其特徵在於,所述客戶端通過所述持久連接登錄所述伺服器的步驟與所述伺服器通過所述持久連接向所述客戶端推送消息的步驟之間,還包括設置連接監聽器的步驟,所述連接監聽器用於監聽所述持久連接的連接錯誤。
[0010]如上所述,本發明的向客戶端推送消息的方法,具有以下有益效果:向智能客戶終端主動推送消息的方法成本低,消耗帶寬和電量小,並且消息更新及時。
【專利附圖】

【附圖說明】
[0011]圖1顯示為本發明向客戶端推送消息的方法所用伺服器結構示意圖;
[0012]圖2顯示為本發明向客戶端推送消息的方法所用客戶端結構示意圖;[0013]圖3顯示為本發明向客戶端推送消息的方法流程圖。
【具體實施方式】
[0014]以下通過特定的具體實例說明本發明的實施方式,本領域技術人員可由本說明書所揭露的內容輕易地了解本發明的其他優點與功效。本發明還可以通過另外不同的【具體實施方式】加以實施或應用,本說明書中的各項細節也可以基於不同觀點與應用,在沒有背離本發明的精神下進行各種修飾或改變。
[0015]請參閱附圖。需要說明的是,本實施例中所提供的圖示僅以示意方式說明本發明的基本構想,遂圖式中僅顯示與本發明中有關的組件而非按照實際實施時的組件數目、形狀及尺寸繪製,其實際實施時各組件的型態、數量及比例可為一種隨意的改變,且其組件布局型態也可能更為複雜。
[0016]本發明的向智能機主動推送消息的方法應用於具有伺服器和以智慧型手機為代表的客戶端構成的系統中。下面結合圖1和圖2對伺服器端和客戶端的結構和工作過程分別進行介紹。首先參閱圖1,伺服器端包括三個模塊:
[0017]XMPP服務模塊,負責與客戶端通信,例如用戶註冊和身份認證,並發送推送通知消息;
[0018]Web服務模塊,包括一個HTTP伺服器,負責接收用戶的Web請求;
[0019]連接管理模塊,用於管理Socket連接。
[0020]其中XMPP服務模塊包括四個部分:會話(session)管理器,負責管理客戶端與伺服器之間的會話,比如連接斷開,刪除session以及建立連接,添加session等等;權限管理器,負責客戶端用戶認證管理;登錄狀態管理器,負責管理客戶端用戶的登錄狀態,以及通知管理器,負責實現伺服器向客戶端推送消息功能。
[0021]本例中,連接管理模塊及客戶端採用了 MINA框架來進行連接管理,由於客戶端與伺服器的信息往來(包括心跳包)都是通過Session傳遞的,MINA主要負責XMPP服務模塊的session創建、session開啟、session關閉、信息收取等客戶端與伺服器建立Socket連接。
[0022]下面對連接管理模塊的主要實現類進行介紹:
[0023]IOAcceptor類:監聽指定的埠,處理新的網絡連接;一旦一個新的連接到達後,IOAcceptor就產生一個session,後續所有從這個IP和埠發送過來的請求就將通過這個Session被處理。
[0024]PacketEncoder/Decoder類:在Session創建後,負責將後續所有的數據包放入過濾器鏈中,通過過濾器將原始的字節碼轉變成高層的對象。最後數據包或對象被傳送給Handler做業務邏輯處理;
[0025]下面參閱圖2,圖2顯示為客戶端結構框圖。本例中,客戶端由以下幾個模塊組成:
[0026]通信模塊,負責與伺服器建立通信,通過創建3個線程來進行處理。分別負責消息的發送、接收、心跳信息的發送;
[0027]解析模塊,主要用來解析XML數據流。根據解析元素不同類型封裝成不同的數據對象。
[0028]數據模塊,定義整個客戶端中大部分的數據類型和對象;[0029]加密模塊,對發送和接收的消息進行加解密,以確保通訊數據的安全。
[0030]下面結合圖3介紹客戶端連接伺服器的過程。本例中,使用XMPP協議,所以連接伺服器要分為三步:連接,註冊,登陸。可以用一個棧來保存要執行的任務,即ConnectTask,RegisterTask, LoginTask,之後各模塊再從該棧中領取任務執行,這樣就可以使任務得到有序執行。圖3中,步驟SI表示伺服器端創建通知線程。本例中,客戶端的通信模塊包括通知服務類,該通知服務類創建一個單線程,讓其對伺服器進行連接。
[0031]步驟S2表示連接伺服器,本例中,連接伺服器用的是Executors.newSingleThreadExecutor 方法,從而可以連續提交任務。
[0032]步驟S3表示註冊用戶。
[0033]步驟S4表示用戶登錄,即執行LoginTask。本例中,在LoginTask裡,客戶端通信模塊登陸了伺服器端後,註冊一個監聽器,用於監聽伺服器push的數據包(Packet),再通過發送廣播的方式來通知要進行顯示的程序。
[0034]步驟S5表示判斷連接是否成功,如果未成功則返回步驟SI重新建立連接。連接線程在連接,註冊,登陸的過程中,都有可能出錯,都可能會失敗,這就需要一種重連的機制。本例中,通過在Androidpn裡建立新線程來進行重試,其重試可以按照如下規則:客戶端成功連接伺服器後,伺服器會建立一個唯一 session保持與客戶端連接,如果是連接過程出現連接失敗,直接返回步驟SI重新建立連接即可;如果是註冊、登錄過程出現連接失敗,則客戶端直接帶著session ID與伺服器進行連接。
[0035]步驟S6表示連接建立成功後,伺服器可以隨時向客戶端推送消息。
[0036]上述步驟中,登陸伺服器後,也有可能出錯,所以本例中,在登陸後會設置一個連接監聽器,用於監聽連接出錯的時候進行重連。
[0037]另外,在登陸過程中,還可以包括登錄錯誤處理步驟。如果登錄出錯的原因是帳號和密碼無效,則應該把客戶端本地保存的帳號和密碼都清掉,再重新進行連接,否則會永遠都登陸不上伺服器端。可以通過判斷伺服器端返回的操作碼來判斷登錄出錯的原因,本例中,如果用戶名密碼無效導致登錄操作出錯,則伺服器返回操作碼401。
[0038]需要說明的是,上述實施例雖然基於智慧型手機作為客戶端,但本發明的思想並不局限於此。實際應用中,客戶端可以是軟體,並且可以安裝於多種硬體平臺上,比如普通個人電腦、筆記本或者平板電腦等等。
[0039]綜上所述,本發明的向智能客戶終端主動推送消息的方法成本低,消耗帶寬和電量小,並且消息更新及時。所以,本發明有效克服了現有技術中的種種缺點而具高度產業利用價值。
[0040]上述實施例僅例示性說明本發明的原理及其功效,而非用於限制本發明。任何熟悉此技術的人士皆可在不違背本發明的精神及範疇下,對上述實施例進行修飾或改變。因此,舉凡所屬【技術領域】中具有通常知識者在未脫離本發明所揭示的精神與技術思想下所完成的一切等效修飾或改變,仍應由本發明的權利要求所涵蓋。
【權利要求】
1.一種向客戶端推送消息的方法,應用於包括伺服器端和客戶端的通信系統中,其特徵在於,包括: 所述客戶端創建連接線程的步驟; 所述客戶端通過所述連接線程與所述伺服器建立持久連接的步驟; 所述客戶端通過所述持久連接向所述伺服器註冊用戶的步驟; 所述客戶端通過所述持久連接登錄所述伺服器的步驟; 所述伺服器通過所述持久連接向所述客戶端推送消息的步驟。
2.根據權利要求1所述的向客戶端推送消息的方法,其特徵在於,所述客戶端通過所述持久連接登錄所述伺服器的步驟與所述伺服器通過所述持久連接向所述客戶端推送消息的步驟之間,還包括所述客戶端註冊監聽器的步驟,所述監聽器監聽伺服器推送的數據包,再通知要進行顯示的程序。
3.根據權利要求1所述的向客戶端推送消息的方法,其特徵在於,所述客戶端通過所述持久連接登錄所述伺服器的步驟與所述伺服器通過所述持久連接向所述客戶端推送消息的步驟之間,還包括設置連接監聽器的步驟,所述連接監聽器用於監聽所述持久連接的連接錯誤。
4.根據權利要求1所述的向客戶端推送消息的方法,其特徵在於,所述客戶端通過所述持久連接登錄所述伺服器的步驟中還包括登錄錯誤處理的步驟,所述登錄錯誤處理的步驟包括:如果所述登錄錯誤處理是由於用戶名密碼錯誤引發,則清除客戶端本地保存的用戶名和密碼。
5.根據權利要求1所述的向客戶端推送消息的方法,其特徵在於,所述客戶端通過所述持久連接登錄所述伺服器的步驟與所述伺服器通過所述持久連接向所述客戶端推送消息的步驟之間,還包括判斷所述持久連接是否出錯的步驟,如果所述持久連接出錯,則執行重連。
【文檔編號】H04L12/58GK103618665SQ201310666387
【公開日】2014年3月5日 申請日期:2013年12月10日 優先權日:2013年12月10日
【發明者】苗帥, 鄭松, 黃志華 申請人:南京守護寶信息技術有限公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀