欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

文檔序號(hào):7779737閱讀:436來(lái)源:國(guó)知局
一種向客戶端推送消息的方法
【專利摘要】本發(fā)明提供一種向客戶端推送消息的方法,包括:一種向客戶端推送消息的方法,應(yīng)用于包括服務(wù)器端和客戶端的通信系統(tǒng)中,其特征在于,包括:所述客戶端創(chuàng)建連接線程的步驟;所述客戶端通過(guò)所述連接線程與所述服務(wù)器建立持久連接的步驟;所述客戶端通過(guò)所述持久連接向所述服務(wù)器注冊(cè)用戶的步驟;所述客戶端通過(guò)所述持久連接登錄所述服務(wù)器的步驟;所述服務(wù)器通過(guò)所述持久連接向所述客戶端推送消息的步驟。本發(fā)明的向智能客戶終端主動(dòng)推送消息的方法成本低,消耗帶寬和電量小,并且消息更新及時(shí)。
【專利說(shuō)明】一種向客戶端推送消息的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種推送消息的方法,特別是涉及一種向智能客戶端及時(shí)推送消息的方法。
【背景技術(shù)】
[0002]隨著使用智能手機(jī)的人越來(lái)越多,智能手機(jī)的處理能力越來(lái)越強(qiáng)大,智能手機(jī)聯(lián)網(wǎng)的需求越來(lái)越強(qiáng),尤其是對(duì)推送消息的需求越來(lái)越強(qiáng),比如實(shí)時(shí)更新消息,即時(shí)信息分享
坐坐寸寸o
[0003]常見(jiàn)的推送技術(shù)方案有如下幾種:
[0004]服務(wù)器端通過(guò)SMS和客戶端的通信,這是一個(gè)可以實(shí)時(shí)操作的方案,不過(guò)成本較高,因?yàn)樾枰蜻\(yùn)營(yíng)商或者代理購(gòu)買(mǎi)短消息發(fā)送網(wǎng)關(guān)。
[0005]客戶端定時(shí)訪問(wèn)服務(wù)器端口,主動(dòng)定時(shí)獲取最新消息;這種方案需要考慮主動(dòng)獲取信息的頻率,太快則消耗大量的帶寬和電量,太慢則導(dǎo)致消息不能及時(shí)更新。

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

[0006]鑒于以上所述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種向客戶端推送消息的方法,用于解決現(xiàn)有技術(shù)成本高,消耗帶寬和電量大或消息不能及時(shí)更新的問(wèn)題。
[0007]為實(shí)現(xiàn)上述目的及其他相關(guān)目的,本發(fā)明提供一種向客戶端推送消息的方法,包括:一種向客戶端推送消息的方法,應(yīng)用于包括服務(wù)器端和客戶端的通信系統(tǒng)中,其特征在于,包括:所述客戶端創(chuàng)建連接線程的步驟;所述客戶端通過(guò)所述連接線程與所述服務(wù)器建立持久連接的步驟;所述客戶端通過(guò)所述持久連接向所述服務(wù)器注冊(cè)用戶的步驟;所述客戶端通過(guò)所述持久連接登錄所述服務(wù)器的步驟;所述服務(wù)器通過(guò)所述持久連接向所述客戶端推送消息的步驟。
[0008]優(yōu)選地,上述客戶端通過(guò)所述持久連接登錄所述服務(wù)器的步驟與所述服務(wù)器通過(guò)所述持久連接向所述客戶端推送消息的步驟之間,還包括所述客戶端注冊(cè)監(jiān)聽(tīng)器的步驟,所述監(jiān)聽(tīng)器監(jiān)聽(tīng)服務(wù)器推送的數(shù)據(jù)包,再通知要進(jìn)行顯示的程序。
[0009]更優(yōu)選地,根據(jù)權(quán)利要求1所述的向客戶端推送消息的方法,其特征在于,所述客戶端通過(guò)所述持久連接登錄所述服務(wù)器的步驟與所述服務(wù)器通過(guò)所述持久連接向所述客戶端推送消息的步驟之間,還包括設(shè)置連接監(jiān)聽(tīng)器的步驟,所述連接監(jiān)聽(tīng)器用于監(jiān)聽(tīng)所述持久連接的連接錯(cuò)誤。
[0010]如上所述,本發(fā)明的向客戶端推送消息的方法,具有以下有益效果:向智能客戶終端主動(dòng)推送消息的方法成本低,消耗帶寬和電量小,并且消息更新及時(shí)。
【專利附圖】

【附圖說(shuō)明】
[0011]圖1顯示為本發(fā)明向客戶端推送消息的方法所用服務(wù)器結(jié)構(gòu)示意圖;
[0012]圖2顯示為本發(fā)明向客戶端推送消息的方法所用客戶端結(jié)構(gòu)示意圖;[0013]圖3顯示為本發(fā)明向客戶端推送消息的方法流程圖。
【具體實(shí)施方式】
[0014]以下通過(guò)特定的具體實(shí)例說(shuō)明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說(shuō)明書(shū)所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過(guò)另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說(shuō)明書(shū)中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒(méi)有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。
[0015]請(qǐng)參閱附圖。需要說(shuō)明的是,本實(shí)施例中所提供的圖示僅以示意方式說(shuō)明本發(fā)明的基本構(gòu)想,遂圖式中僅顯示與本發(fā)明中有關(guān)的組件而非按照實(shí)際實(shí)施時(shí)的組件數(shù)目、形狀及尺寸繪制,其實(shí)際實(shí)施時(shí)各組件的型態(tài)、數(shù)量及比例可為一種隨意的改變,且其組件布局型態(tài)也可能更為復(fù)雜。
[0016]本發(fā)明的向智能機(jī)主動(dòng)推送消息的方法應(yīng)用于具有服務(wù)器和以智能手機(jī)為代表的客戶端構(gòu)成的系統(tǒng)中。下面結(jié)合圖1和圖2對(duì)服務(wù)器端和客戶端的結(jié)構(gòu)和工作過(guò)程分別進(jìn)行介紹。首先參閱圖1,服務(wù)器端包括三個(gè)模塊:
[0017]XMPP服務(wù)模塊,負(fù)責(zé)與客戶端通信,例如用戶注冊(cè)和身份認(rèn)證,并發(fā)送推送通知消息;
[0018]Web服務(wù)模塊,包括一個(gè)HTTP服務(wù)器,負(fù)責(zé)接收用戶的Web請(qǐng)求;
[0019]連接管理模塊,用于管理Socket連接。
[0020]其中XMPP服務(wù)模塊包括四個(gè)部分:會(huì)話(session)管理器,負(fù)責(zé)管理客戶端與服務(wù)器之間的會(huì)話,比如連接斷開(kāi),刪除session以及建立連接,添加session等等;權(quán)限管理器,負(fù)責(zé)客戶端用戶認(rèn)證管理;登錄狀態(tài)管理器,負(fù)責(zé)管理客戶端用戶的登錄狀態(tài),以及通知管理器,負(fù)責(zé)實(shí)現(xiàn)服務(wù)器向客戶端推送消息功能。
[0021]本例中,連接管理模塊及客戶端采用了 MINA框架來(lái)進(jìn)行連接管理,由于客戶端與服務(wù)器的信息往來(lái)(包括心跳包)都是通過(guò)Session傳遞的,MINA主要負(fù)責(zé)XMPP服務(wù)模塊的session創(chuàng)建、session開(kāi)啟、session關(guān)閉、信息收取等客戶端與服務(wù)器建立Socket連接。
[0022]下面對(duì)連接管理模塊的主要實(shí)現(xiàn)類進(jìn)行介紹:
[0023]IOAcceptor類:監(jiān)聽(tīng)指定的端口,處理新的網(wǎng)絡(luò)連接;一旦一個(gè)新的連接到達(dá)后,IOAcceptor就產(chǎn)生一個(gè)session,后續(xù)所有從這個(gè)IP和端口發(fā)送過(guò)來(lái)的請(qǐng)求就將通過(guò)這個(gè)Session被處理。
[0024]PacketEncoder/Decoder類:在Session創(chuàng)建后,負(fù)責(zé)將后續(xù)所有的數(shù)據(jù)包放入過(guò)濾器鏈中,通過(guò)過(guò)濾器將原始的字節(jié)碼轉(zhuǎn)變成高層的對(duì)象。最后數(shù)據(jù)包或?qū)ο蟊粋魉徒oHandler做業(yè)務(wù)邏輯處理;
[0025]下面參閱圖2,圖2顯示為客戶端結(jié)構(gòu)框圖。本例中,客戶端由以下幾個(gè)模塊組成:
[0026]通信模塊,負(fù)責(zé)與服務(wù)器建立通信,通過(guò)創(chuàng)建3個(gè)線程來(lái)進(jìn)行處理。分別負(fù)責(zé)消息的發(fā)送、接收、心跳信息的發(fā)送;
[0027]解析模塊,主要用來(lái)解析XML數(shù)據(jù)流。根據(jù)解析元素不同類型封裝成不同的數(shù)據(jù)對(duì)象。
[0028]數(shù)據(jù)模塊,定義整個(gè)客戶端中大部分的數(shù)據(jù)類型和對(duì)象;[0029]加密模塊,對(duì)發(fā)送和接收的消息進(jìn)行加解密,以確保通訊數(shù)據(jù)的安全。
[0030]下面結(jié)合圖3介紹客戶端連接服務(wù)器的過(guò)程。本例中,使用XMPP協(xié)議,所以連接服務(wù)器要分為三步:連接,注冊(cè),登陸。可以用一個(gè)棧來(lái)保存要執(zhí)行的任務(wù),即ConnectTask,RegisterTask, LoginTask,之后各模塊再?gòu)脑摋V蓄I(lǐng)取任務(wù)執(zhí)行,這樣就可以使任務(wù)得到有序執(zhí)行。圖3中,步驟SI表示服務(wù)器端創(chuàng)建通知線程。本例中,客戶端的通信模塊包括通知服務(wù)類,該通知服務(wù)類創(chuàng)建一個(gè)單線程,讓其對(duì)服務(wù)器進(jìn)行連接。
[0031]步驟S2表示連接服務(wù)器,本例中,連接服務(wù)器用的是Executors.newSingleThreadExecutor ()方法,從而可以連續(xù)提交任務(wù)。
[0032]步驟S3表示注冊(cè)用戶。
[0033]步驟S4表示用戶登錄,即執(zhí)行LoginTask。本例中,在LoginTask里,客戶端通信模塊登陸了服務(wù)器端后,注冊(cè)一個(gè)監(jiān)聽(tīng)器,用于監(jiān)聽(tīng)服務(wù)器push的數(shù)據(jù)包(Packet),再通過(guò)發(fā)送廣播的方式來(lái)通知要進(jìn)行顯示的程序。
[0034]步驟S5表示判斷連接是否成功,如果未成功則返回步驟SI重新建立連接。連接線程在連接,注冊(cè),登陸的過(guò)程中,都有可能出錯(cuò),都可能會(huì)失敗,這就需要一種重連的機(jī)制。本例中,通過(guò)在Androidpn里建立新線程來(lái)進(jìn)行重試,其重試可以按照如下規(guī)則:客戶端成功連接服務(wù)器后,服務(wù)器會(huì)建立一個(gè)唯一 session保持與客戶端連接,如果是連接過(guò)程出現(xiàn)連接失敗,直接返回步驟SI重新建立連接即可;如果是注冊(cè)、登錄過(guò)程出現(xiàn)連接失敗,則客戶端直接帶著session ID與服務(wù)器進(jìn)行連接。
[0035]步驟S6表示連接建立成功后,服務(wù)器可以隨時(shí)向客戶端推送消息。
[0036]上述步驟中,登陸服務(wù)器后,也有可能出錯(cuò),所以本例中,在登陸后會(huì)設(shè)置一個(gè)連接監(jiān)聽(tīng)器,用于監(jiān)聽(tīng)連接出錯(cuò)的時(shí)候進(jìn)行重連。
[0037]另外,在登陸過(guò)程中,還可以包括登錄錯(cuò)誤處理步驟。如果登錄出錯(cuò)的原因是賬號(hào)和密碼無(wú)效,則應(yīng)該把客戶端本地保存的帳號(hào)和密碼都清掉,再重新進(jìn)行連接,否則會(huì)永遠(yuǎn)都登陸不上服務(wù)器端。可以通過(guò)判斷服務(wù)器端返回的操作碼來(lái)判斷登錄出錯(cuò)的原因,本例中,如果用戶名密碼無(wú)效導(dǎo)致登錄操作出錯(cuò),則服務(wù)器返回操作碼401。
[0038]需要說(shuō)明的是,上述實(shí)施例雖然基于智能手機(jī)作為客戶端,但本發(fā)明的思想并不局限于此。實(shí)際應(yīng)用中,客戶端可以是軟件,并且可以安裝于多種硬件平臺(tái)上,比如普通個(gè)人電腦、筆記本或者平板電腦等等。
[0039]綜上所述,本發(fā)明的向智能客戶終端主動(dòng)推送消息的方法成本低,消耗帶寬和電量小,并且消息更新及時(shí)。所以,本發(fā)明有效克服了現(xiàn)有技術(shù)中的種種缺點(diǎn)而具高度產(chǎn)業(yè)利用價(jià)值。
[0040]上述實(shí)施例僅例示性說(shuō)明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對(duì)上述實(shí)施例進(jìn)行修飾或改變。因此,舉凡所屬【技術(shù)領(lǐng)域】中具有通常知識(shí)者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【權(quán)利要求】
1.一種向客戶端推送消息的方法,應(yīng)用于包括服務(wù)器端和客戶端的通信系統(tǒng)中,其特征在于,包括: 所述客戶端創(chuàng)建連接線程的步驟; 所述客戶端通過(guò)所述連接線程與所述服務(wù)器建立持久連接的步驟; 所述客戶端通過(guò)所述持久連接向所述服務(wù)器注冊(cè)用戶的步驟; 所述客戶端通過(guò)所述持久連接登錄所述服務(wù)器的步驟; 所述服務(wù)器通過(guò)所述持久連接向所述客戶端推送消息的步驟。
2.根據(jù)權(quán)利要求1所述的向客戶端推送消息的方法,其特征在于,所述客戶端通過(guò)所述持久連接登錄所述服務(wù)器的步驟與所述服務(wù)器通過(guò)所述持久連接向所述客戶端推送消息的步驟之間,還包括所述客戶端注冊(cè)監(jiān)聽(tīng)器的步驟,所述監(jiān)聽(tīng)器監(jiān)聽(tīng)服務(wù)器推送的數(shù)據(jù)包,再通知要進(jìn)行顯示的程序。
3.根據(jù)權(quán)利要求1所述的向客戶端推送消息的方法,其特征在于,所述客戶端通過(guò)所述持久連接登錄所述服務(wù)器的步驟與所述服務(wù)器通過(guò)所述持久連接向所述客戶端推送消息的步驟之間,還包括設(shè)置連接監(jiān)聽(tīng)器的步驟,所述連接監(jiān)聽(tīng)器用于監(jiān)聽(tīng)所述持久連接的連接錯(cuò)誤。
4.根據(jù)權(quán)利要求1所述的向客戶端推送消息的方法,其特征在于,所述客戶端通過(guò)所述持久連接登錄所述服務(wù)器的步驟中還包括登錄錯(cuò)誤處理的步驟,所述登錄錯(cuò)誤處理的步驟包括:如果所述登錄錯(cuò)誤處理是由于用戶名密碼錯(cuò)誤引發(fā),則清除客戶端本地保存的用戶名和密碼。
5.根據(jù)權(quán)利要求1所述的向客戶端推送消息的方法,其特征在于,所述客戶端通過(guò)所述持久連接登錄所述服務(wù)器的步驟與所述服務(wù)器通過(guò)所述持久連接向所述客戶端推送消息的步驟之間,還包括判斷所述持久連接是否出錯(cuò)的步驟,如果所述持久連接出錯(cuò),則執(zhí)行重連。
【文檔編號(hào)】H04L12/58GK103618665SQ201310666387
【公開(kāi)日】2014年3月5日 申請(qǐng)日期:2013年12月10日 優(yōu)先權(quán)日:2013年12月10日
【發(fā)明者】苗帥, 鄭松, 黃志華 申請(qǐng)人:南京守護(hù)寶信息技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
石景山区| 获嘉县| 安龙县| 南城县| 大关县| 周宁县| 顺昌县| 平舆县| 华容县| 新宾| 汉川市| 黄骅市| 邯郸市| 曲沃县| 赤城县| 武乡县| 且末县| 泸水县| 新兴县| 柳河县| 前郭尔| 吴江市| 芒康县| 醴陵市| 信宜市| 绥中县| 安福县| 高台县| 阜平县| 湖州市| 虎林市| 平乡县| 郴州市| 高安市| 哈巴河县| 克拉玛依市| 吉林市| 营口市| 英德市| 荆门市| 蛟河市|