專利名稱:客戶端狀態(tài)維護(hù)方法、系統(tǒng)、客戶端及應(yīng)用服務(wù)器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及客戶端狀態(tài)維護(hù)方法、系統(tǒng)、客戶 端及應(yīng)用服務(wù)器。
背景技術(shù):
目前,在很多應(yīng)用領(lǐng)域中,都使用了網(wǎng)頁瀏覽器作為通信客戶端,例如 一些基于網(wǎng)頁的即時(shí)通信系統(tǒng)、論壇等。與一般的通信系統(tǒng)類似,基于網(wǎng)頁 的通信系統(tǒng)中,后臺(tái)服務(wù)器和系統(tǒng)中的每一個(gè)客戶端都需要實(shí)時(shí)、準(zhǔn)確的了 解作為通信客戶端的網(wǎng)頁瀏覽器的狀態(tài),從而實(shí)現(xiàn)相應(yīng)的功能。然而,由于網(wǎng)頁采用的是無狀態(tài)的連接方式,因此,現(xiàn)有技術(shù)中, 一般是通過會(huì)話(Session)和Cookie記錄并保存客戶端的相關(guān)信息,并在客戶 端再次以記錄的相關(guān)信息對(duì)后臺(tái)月l務(wù)器進(jìn)行業(yè)務(wù)請(qǐng)求時(shí),確認(rèn)客戶端的狀 態(tài)。但是在現(xiàn)有技術(shù)中,客戶端的現(xiàn)有狀態(tài)只能在客戶端提出業(yè)務(wù)請(qǐng)求時(shí), 才能被后臺(tái)服務(wù)器所獲知,如果作為客戶端的網(wǎng)頁瀏覽器被關(guān)閉,則后臺(tái)服 務(wù)器將無法及時(shí)得知客戶端狀態(tài)的改變,仍然認(rèn)為客戶端在線,此時(shí),后臺(tái) 服務(wù)器提供的一些業(yè)務(wù)應(yīng)用將無法正常完成。從以上描述可以看出,現(xiàn)有技術(shù)中,對(duì)于客戶端狀態(tài)的獲知是不確定的, 因此無法進(jìn)行客戶端狀態(tài)的實(shí)時(shí)維護(hù),造成業(yè)務(wù)應(yīng)用有可能無法正常完成。發(fā)明內(nèi)容本發(fā)明實(shí)施例提供一種客戶端狀態(tài)維護(hù)方法,可以實(shí)現(xiàn)實(shí)時(shí)的客戶端狀 態(tài)維護(hù)。本發(fā)明實(shí)施例提供一種客戶端狀態(tài)維護(hù)系統(tǒng),可以實(shí)現(xiàn)實(shí)時(shí)的客戶端狀 態(tài)維護(hù)。本發(fā)明實(shí)施例提供一種客戶端,可以實(shí)現(xiàn)實(shí)時(shí)的客戶端狀態(tài)維護(hù)。 本發(fā)明實(shí)施例提供一種應(yīng)用服務(wù)器,可以實(shí)現(xiàn)實(shí)時(shí)的客戶端狀態(tài)維護(hù)。為達(dá)到上述目的,本發(fā)明的技術(shù)方案具體是這樣實(shí)現(xiàn)的 一種客戶端狀態(tài)維護(hù)方法,該方法包括接收客戶端以固定時(shí)間間隔發(fā)送的攜帶有客戶端簽名信息的心跳包,根 據(jù)所述客戶端簽名信息維護(hù)客戶端的狀態(tài)。 一種客戶端狀態(tài)維護(hù)系統(tǒng),該系統(tǒng)包括客戶端,用于以固定時(shí)間間隔發(fā)送攜帶有客戶端簽名信息的心跳包; 應(yīng)用服務(wù)器,用于接收客戶端以固定時(shí)間間隔發(fā)送的攜帶有客戶端簽名 信息的心跳包;根據(jù)所述客戶端簽名信息維護(hù)客戶端的狀態(tài)。 一種客戶端,該客戶端包括心跳包生成模塊,用于生成攜帶有客戶端簽名信息的心跳包; 心跳包發(fā)送模塊,用于將所述心跳包生成才莫塊生成的所述心跳包向應(yīng)用 服務(wù)器發(fā)送。一種應(yīng)用服務(wù)器,該服務(wù)器包括心跳包接收模塊,用于接收客戶端以固定時(shí)間間隔發(fā)送的攜帶有客戶端 簽名信息的心跳包;客戶端狀態(tài)維護(hù)模塊,用于根據(jù)所述客戶端簽名信息維護(hù)客戶端的狀態(tài)。由上述的技術(shù)方案可見,本發(fā)明的這種接收客戶端以固定時(shí)間間隔發(fā)送 的攜帶有客戶端簽名信息的心跳包,根據(jù)所述客戶端簽名信息維護(hù)客戶端的 狀態(tài)的客戶端狀態(tài)維護(hù)方法、系統(tǒng)、客戶端及應(yīng)用服務(wù)器,使得客戶端的狀 態(tài)信息可以以很短的固定時(shí)間間隔進(jìn)行更新,從而實(shí)現(xiàn)了客戶端狀態(tài)的實(shí)時(shí) 維護(hù)。
圖1為本發(fā)明實(shí)施例的客戶端狀態(tài)維護(hù)方法流程圖;圖2為本發(fā)明實(shí)施例的客戶端狀態(tài)維護(hù)系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下參照附圖并舉 實(shí)施例,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。本發(fā)明實(shí)施例主要是利用了心跳包的特性,讓客戶端以固定時(shí)間間隔發(fā) 送的攜帶有客戶端簽名信息的心跳包,并根據(jù)心跳包中的客戶端簽名信息維 護(hù)客戶端的狀態(tài),使得客戶端的狀態(tài)信息可以以很短的固定時(shí)間間隔進(jìn)行更 新,^v而實(shí)現(xiàn)了客戶端狀態(tài)的實(shí)時(shí)維護(hù)。圖1為本發(fā)明實(shí)施例的客戶端狀態(tài)維護(hù)方法流程圖,如圖l所示,該方 法包括如下步驟步驟101,接收客戶端以固定時(shí)間間隔發(fā)送的攜帶有客戶端簽名信息的心 跳包。步驟102,根據(jù)所述客戶端簽名信息維護(hù)客戶端的狀態(tài)。步驟101中,客戶端簽名信息可以是根據(jù)用戶輸入的用戶身份信息,如用 戶名和密碼或可信任的會(huì)話(Session) ID等生成的一段字符串。以社區(qū)論壇舉例來說,當(dāng)用戶在使用網(wǎng)頁客戶端瀏覽社區(qū)首頁時(shí),需要先 進(jìn)行登錄操作,用戶輸入其身份信息,如用戶名和密碼或會(huì)話(Session) ID后, 客戶端將通過HTTP協(xié)議,使用通信通道將該用戶身份信息傳送到HTTP服務(wù) 器,HTTP服務(wù)器進(jìn)行HTTP協(xié)議解釋后,得到相應(yīng)的登錄請(qǐng)求數(shù)據(jù),并將其 使用與應(yīng)用服務(wù)器約定的自有協(xié)議轉(zhuǎn)發(fā)到應(yīng)用服務(wù)器上。應(yīng)用服務(wù)器接收到用戶身份信息后,會(huì)根據(jù)用戶身份信息生成一段字符串, 作為該用戶的服務(wù)器端簽名信息并保存,同時(shí),才艮據(jù)用戶身份信息生成一段字 符串,作為該用戶的客戶端簽名信息。將相對(duì)應(yīng)的客戶端簽名信息使用自有協(xié) 議回應(yīng)HTTP服務(wù)器,HTTP服務(wù)器收到回應(yīng)后,并將回應(yīng)信息轉(zhuǎn)換打包成HTTP 響應(yīng)包,既而回應(yīng)網(wǎng)頁客戶端。當(dāng)然, 一般來說應(yīng)用服務(wù)器對(duì)接收到的用戶身份信息可以進(jìn)行合法性驗(yàn)證,如果通過驗(yàn)證,則繼續(xù)執(zhí)行后續(xù)步驟,如果用戶身份信息不合法,則不執(zhí)行后 續(xù)步驟,而直接回復(fù)客戶端用戶登錄失敗。具體的驗(yàn)證方法或是否進(jìn)行驗(yàn)證, 可以根據(jù)實(shí)際需要而定??蛻舳撕灻畔⒖梢院头?wù)器端簽名信息之間含有特定的關(guān)系,比如通過 某種公式可以相互計(jì)算得出,或者相同,只要保證生成的客戶端簽名信息可以 和服務(wù)器端簽名信息——對(duì)應(yīng)即可。如果客戶端簽名信息和服務(wù)器端簽名信息 是相同的,也可以不生成服務(wù)器端簽名信息,應(yīng)用服務(wù)器只需將客戶端簽名信 息保存下來即可。網(wǎng)頁客戶端在接收到應(yīng)用服務(wù)器返回的客戶端簽名信息后,可以用任何數(shù)據(jù)存貯方式保存到該網(wǎng)頁客戶端所在的終端、PC、移動(dòng)終端等設(shè)備中。如果用戶的身份信息驗(yàn)證失敗,則用失敗信息回應(yīng)網(wǎng)頁客戶端,如果驗(yàn)證 失敗,則無需生成客戶端簽名信息和服務(wù)器端簽名信息。當(dāng)客戶端獲得客戶端簽名信息后,會(huì)執(zhí)行頁面中的代碼,以固定的時(shí)間間 隔向應(yīng)用服務(wù)器發(fā)送心跳包。具體過程可以如下將客戶端簽名信息以HTTP協(xié)議封裝,打包成心跳包,向HTTP服務(wù)器發(fā) 送,HTTP服務(wù)器進(jìn)行HTTP協(xié)議解釋后,得到相應(yīng)的心跳信息,并使用HTTP 服務(wù)器與應(yīng)用服務(wù)器之間的自有協(xié)議打包,發(fā)往應(yīng)用服務(wù)器進(jìn)行驗(yàn)證。步驟102中,應(yīng)用服務(wù)器將會(huì)根據(jù)收到的客戶端簽名信息進(jìn)行驗(yàn)證,若客 戶端簽名信息驗(yàn)證通過,則將客戶端的狀態(tài)置為在線,如果客戶端原來的狀態(tài) 就是在線,則這里也可以不做操作,維持客戶端的在線狀態(tài)。若客戶端簽名信息沒有通過驗(yàn)證,則根據(jù)預(yù)定的客戶端驗(yàn)證失敗策略進(jìn)行 處理。具體的驗(yàn)證失敗策略可以是判斷簽名信息驗(yàn)證失敗的次數(shù)是否超過預(yù)設(shè)的最大允許失敗次數(shù),如果超 過了預(yù)設(shè)的最大允許失敗次數(shù),則將客戶端在線狀態(tài)置為離線,否則保持客戶 端狀態(tài)為在線;或者,若客戶端簽名信息驗(yàn)證失敗,則請(qǐng)求客戶端重發(fā)客戶端 簽名信息;或者,若客戶端簽名信息驗(yàn)證失敗,則直接將客戶端狀態(tài)置為離線。驗(yàn)證失敗策略可以根據(jù)具體的需要進(jìn)行設(shè)置。驗(yàn)證失敗后也可以向客戶端返回 -瞼-汪失敗消息,并告知其失敗原因??蛻舳撕灻畔Ⅱ?yàn)證通過后,應(yīng)用服務(wù)器可以向客戶端返回驗(yàn)證成功消息, 或者,進(jìn)一步更換服務(wù)器端簽名信息與客戶端簽名信息,并向客戶端發(fā)送新的 客戶端簽名信息,或者將新的客戶端簽名信息添加到返回得驗(yàn)證成功消息中, 通知客戶端,從而降低數(shù)據(jù)被截取后被重用的可能性,提高系統(tǒng)的安全性。當(dāng)客戶端收到返回的驗(yàn)證成功或失敗的消息后,可以根據(jù)驗(yàn)證成功或失敗的消息改變自己的狀態(tài);如果收到驗(yàn)證成功消息,則繼續(xù)保持自己的在線狀態(tài); 若收到驗(yàn)證失敗消息,則將狀態(tài)改為離線。當(dāng)然具體的狀態(tài)可能不只離線和在 線兩種,可以根據(jù)需要,自行設(shè)定。如果應(yīng)用服務(wù)器需要更換新的客戶端簽名信息,則可以將新的客戶端簽名 信息替換原客戶端簽名信息。如果網(wǎng)頁客戶端狀態(tài)為在線,則該網(wǎng)頁客戶端與應(yīng)用服務(wù)器便可以使用通 信通道進(jìn)行各種應(yīng)用功能。如果網(wǎng)頁客戶端被認(rèn)為已經(jīng)下線,則該網(wǎng)頁客戶端 到應(yīng)用服務(wù)器的通信通道也被認(rèn)為是不可用的。以上實(shí)施例中,實(shí)現(xiàn)心跳包以固定間隔時(shí)間發(fā)送的方法可以使用Ajax或 JavaScript等技術(shù)實(shí)現(xiàn)。且具體時(shí)間間隔可以按照需要而定,只要間隔時(shí)間足夠 短,保證實(shí)時(shí)性即可??蛻舳撕灻畔⑴c服務(wù)器端簽名信息也可以在客戶端和 服務(wù)器端預(yù)先設(shè)定好。另外,以上所述的客戶端可以是網(wǎng)頁瀏覽器、各種可以瀏覽網(wǎng)頁的客戶端 程序等。下面將具體介紹本發(fā)明實(shí)施例實(shí)現(xiàn)以上方法的客戶端狀態(tài)維護(hù)系統(tǒng)。圖2為本發(fā)明實(shí)施例的客戶端狀態(tài)維護(hù)系統(tǒng)結(jié)構(gòu)圖,如圖2所示,該系統(tǒng)包括客戶端201和應(yīng)用服務(wù)器203??蛻舳?01用于以固定時(shí)間間隔發(fā)送攜帶有客戶端簽名信息的心跳包。 應(yīng)用服務(wù)器203用于接收客戶端201以固定時(shí)間間隔發(fā)送的攜帶有客戶端簽名信息的心跳包;根據(jù)所述客戶端簽名信息維護(hù)客戶端201的狀態(tài)。為了獲取客戶端簽名信息,所述客戶端201可以進(jìn)一步包括用于發(fā)送用戶 輸入的用戶身份信息,并接收客戶端簽名信息的模塊。所述應(yīng)用服務(wù)器203可以進(jìn)一步包括接收客戶端201發(fā)送的用戶身份信息, 根據(jù)用戶身份信息生成與所述用戶對(duì)應(yīng)的服務(wù)器端簽名信息和客戶端簽名信 息;保存服務(wù)器端簽名信息,并發(fā)送客戶端簽名信息的模塊。當(dāng)然,如果客戶端201使用HTTP協(xié)議,而應(yīng)用服務(wù)器203中沒有集成識(shí) 別HTTP協(xié)議信息的功能,那么該系統(tǒng)還可以包括用于協(xié)議轉(zhuǎn)換的HTTP服務(wù) 器202。HTTP服務(wù)器202用于接收客戶端201以固定時(shí)間間隔發(fā)送的,以HTTP 協(xié)議封裝的攜帶有客戶端簽名信息的心跳包,并轉(zhuǎn)換為以應(yīng)用服務(wù)器203使用 的協(xié)議封裝的心跳包,向應(yīng)用服務(wù)器203發(fā)送。HTTP服務(wù)器202接收客戶端201發(fā)送的以HTTP協(xié)議封裝的用戶身份信 息,并轉(zhuǎn)換為以應(yīng)用服務(wù)器203使用的協(xié)議封裝的用戶身份信息,向應(yīng)用服務(wù) 器203發(fā)送。接收應(yīng)用服務(wù)器203發(fā)送的以應(yīng)用服務(wù)器203使用的協(xié)議封裝的 客戶端簽名信息,并轉(zhuǎn)換為以HTTP協(xié)議封裝的客戶端簽名信息,向客戶端201 發(fā)送。相應(yīng)地,應(yīng)用服務(wù)器203接收HTTP服務(wù)器202發(fā)送的以應(yīng)用服務(wù)器203 使用的協(xié)議封裝的心跳包和用戶身份信息,向HTTP服務(wù)器202發(fā)送以應(yīng)用服 務(wù)器203使用的協(xié)議封裝的客戶端簽名信息。另外,以上系統(tǒng)中,如果需要對(duì)客戶端201發(fā)送的用戶身份信息進(jìn)行驗(yàn)證, 則應(yīng)用服務(wù)器203中還可以包括用于用戶身份信息驗(yàn)證的模塊。另外,所述用 戶身份的驗(yàn)證和客戶端簽名信息的生成、服務(wù)器端簽名信息的生成,也可以通 過單獨(dú)的驗(yàn)證服務(wù)器實(shí)現(xiàn),驗(yàn)證服務(wù)器將生成的客戶端簽名信息發(fā)送給客戶端 201,將服務(wù)器端簽名信息發(fā)送給應(yīng)用服務(wù)器203即可。在該系統(tǒng)的客戶端201中包括心跳包生成模塊204和心跳包發(fā)送模塊205。 心跳包生成模塊204用于生成攜帶有客戶端簽名信息的心跳包。 心跳包發(fā)送模塊205用于將所述心跳包生成模塊204生成的所述心跳包向應(yīng)用服務(wù)器203發(fā)送。與用戶身份驗(yàn)證過程對(duì)應(yīng),該客戶端201進(jìn)一步包括用戶身份信息發(fā)送模塊207,用于發(fā)送用戶輸入的用戶身份信息;客戶端簽名信息保存模塊206,用于接收客戶端簽名信息并保存。上述系統(tǒng)中的應(yīng)用服務(wù)器203包括心跳包接收模塊208和客戶端狀態(tài)維護(hù)模塊209。心跳包接收;^莫塊208用于接收客戶端201以固定時(shí)間間隔發(fā)送的攜帶有客 戶端簽名信息的心跳包??蛻舳藸顟B(tài)維護(hù)模塊209用于根據(jù)所述客戶端簽名信息維護(hù)客戶端201的 狀態(tài)。較佳地,該應(yīng)用服務(wù)器203還包括簽名信息生成模塊210、服務(wù)器端簽名信息保存模塊211和客戶端簽名信息發(fā)送模塊212。簽名信息生成模塊210用于接收客戶端201發(fā)送的用戶身份信息,根據(jù)用戶身份信息生成與所述用戶對(duì)應(yīng)的服務(wù)器端簽名信息和客戶端簽名信息。 服務(wù)器端簽名信息保存模塊211用于保存服務(wù)器端簽名信息。 客戶端簽名信息發(fā)送模塊212 ,用于發(fā)送客戶端簽名信息。 其中客戶端狀態(tài)維護(hù)模塊209中包括客戶端信息驗(yàn)證單元213和客戶端狀態(tài):沒置單元214。客戶端信息驗(yàn)證單元213用于驗(yàn)證客戶端簽名信息,如客戶端簽名信息通 過驗(yàn)證,則向客戶端狀態(tài)設(shè)置單元214發(fā)送驗(yàn)證通過消息,否則發(fā)送驗(yàn)證失敗 消息??蛻舳藸顟B(tài)設(shè)置單元214用于接收所述客戶端信息驗(yàn)證單元213發(fā)送的驗(yàn) 證通過消息,將客戶端201的狀態(tài)置為在線;接收所述客戶端信息驗(yàn)證單元213 發(fā)送的驗(yàn)證失敗消息,將客戶端201的狀態(tài)置為離線。若需要對(duì)客戶簽名信息驗(yàn)證失敗后做其它處理,所述客戶端狀態(tài)維護(hù)模塊 還可以包括驗(yàn)證失敗處理單元215。驗(yàn)證失敗處理單元215用于接收客戶端狀態(tài)信息驗(yàn)證單元213發(fā)送的驗(yàn)證失敗消息,并根據(jù)預(yù)設(shè)的驗(yàn)證失敗處理策略進(jìn)行處理,按照處理結(jié)果向客戶端 狀態(tài)設(shè)置單元發(fā)送驗(yàn)證通過消息或驗(yàn)證失敗的消息。具體的失敗處理策略可以 參考對(duì)客戶端狀態(tài)維護(hù)方法中對(duì)驗(yàn)證失敗后的處理方法,這里不再贅述。當(dāng)需要讓系統(tǒng)中其它由應(yīng)用服務(wù)器203進(jìn)行狀態(tài)維護(hù)的客戶端也同步得到 該客戶端201的狀態(tài),客戶端狀態(tài)維護(hù)模塊209還可以包括客戶端狀態(tài)發(fā)送單 元215??蛻舳藸顟B(tài)發(fā)送單元215將所述客戶端狀態(tài)信息向其他客戶端或相關(guān)的服 務(wù)器發(fā)送。以上所述的客戶端狀態(tài)維護(hù)系統(tǒng)中,HTTP服務(wù)器202的功能可以集成于 應(yīng)用服務(wù)器203中,或者由單獨(dú)的驗(yàn)證服務(wù)器實(shí)現(xiàn)簽名信息生成模塊210和客 戶端簽名信息發(fā)送模塊212的功能?;蛘?,應(yīng)用服務(wù)器203可以由多個(gè)應(yīng)用服 務(wù)器組成分布式應(yīng)用服務(wù)器群來實(shí)現(xiàn),具體系統(tǒng)組成和實(shí)現(xiàn)方式可以根據(jù)實(shí)際 需要而定。由上述的實(shí)施例可見,本發(fā)明的這種接收客戶端以固定時(shí)間間隔發(fā)送的 攜帶有客戶端簽名信息的心跳包,根據(jù)所述客戶端簽名信息維護(hù)客戶端的狀 態(tài)的客戶端狀態(tài)維護(hù)方法、系統(tǒng)、客戶端及應(yīng)用服務(wù)器,使得客戶端的狀態(tài) 信息可以以很短的固定時(shí)間間隔進(jìn)行更新,從而實(shí)現(xiàn)了客戶端狀態(tài)的實(shí)時(shí)維 護(hù)。所應(yīng)理解的是,以上所述僅為本發(fā)明的較佳實(shí)施方式而已,并不用于限 定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等 同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1、一種客戶端狀態(tài)維護(hù)方法,其特征是,該方法包括接收客戶端以固定時(shí)間間隔發(fā)送的攜帶有客戶端簽名信息的心跳包,根據(jù)所述客戶端簽名信息維護(hù)客戶端的狀態(tài)。
2、 如權(quán)利要求1所述的客戶端狀態(tài)維護(hù)方法,其特征是,所述接收攜帶有 客戶端簽名信息的心跳包之前,包括接收客戶端發(fā)送的用戶身份信息,根據(jù)用戶身份信息生成與所述用戶對(duì)應(yīng) 的服務(wù)器端簽名信息和客戶端簽名信息;將所述服務(wù)器端簽名信息保存在應(yīng)用服務(wù)器,并將所述客戶端簽名信息返 回客戶端保存。
3、 如權(quán)利要求2所述的客戶端狀態(tài)維護(hù)方法,其特征是,所述服務(wù)器端簽 名信息是根據(jù)用戶身^f分傳息生成的一段字符串;所述客戶端簽名信息是根據(jù)用戶身份信息生成的一段字符串;并與服務(wù)器 端簽名信息對(duì)應(yīng)。
4、 如權(quán)利要求1所述的的客戶端狀態(tài)維護(hù)方法,其特征是,所述根據(jù)用戶 端簽名信息維護(hù)客戶端的狀態(tài),包括若客戶端簽名信息驗(yàn)證通過,則將蓉戶端的狀態(tài)置為在線,若客戶端簽名 信息沒有通過驗(yàn)證,則根據(jù)預(yù)定的客戶端驗(yàn)證失敗策略進(jìn)行處理。
5、 如權(quán)利要求1所述的客戶端狀態(tài)維護(hù)方法,其特征是,所述根據(jù)預(yù)定的 客戶端驗(yàn)證失敗策略進(jìn)行處理,包括若客戶端簽名信息驗(yàn)證失敗的次數(shù)未達(dá)到預(yù)設(shè)的最大允許失敗次數(shù),則保 持客戶端狀態(tài)為在線,否則將客戶端在線狀態(tài)置為離線;或者,若客戶端簽名信息驗(yàn)證失敗,則請(qǐng)求客戶端重發(fā)客戶端簽名信息; 或者,若客戶端簽名信息驗(yàn)證失敗,則將客戶端狀態(tài)置為離線。
6、 如權(quán)利要求1所述的客戶端狀態(tài)維護(hù)方法,其特征是,所述根據(jù)所述客 戶端簽名信息維護(hù)客戶端的狀態(tài)之后,包括將所述客戶端的狀態(tài)信息向其他客戶端或相關(guān)的服務(wù)器發(fā)送。
7、 一種客戶端狀態(tài)維護(hù)系統(tǒng),其特征是,該系統(tǒng)包括客戶端,用于以固定時(shí)間間隔發(fā)送攜帶有客戶端簽名信息的心跳包; 應(yīng)用服務(wù)器,用于接收客戶端以固定時(shí)間間隔發(fā)送的攜帶有客戶端簽名信 息的心跳包;根據(jù)所述客戶端簽名信息維護(hù)客戶端的狀態(tài)。
8、 如權(quán)利要求7所述的客戶端狀態(tài)維護(hù)系統(tǒng),其特征是,所述客戶端,進(jìn) 一步包括用于發(fā)送用戶輸入的用戶身份信息,并接4錄戶端簽名信息的模塊;所述應(yīng)用服務(wù)器,進(jìn)一步包括用于接收客戶端發(fā)送的用戶身份信息,根據(jù) 用戶身〗分信息生成與所述用戶對(duì)應(yīng)的J良務(wù)器端簽名信息和客戶端簽名信息;保 存服務(wù)器端簽名信息,并發(fā)送客戶端簽名信息的模塊。
9、 如權(quán)利要求8所述的客戶端狀態(tài)維護(hù)系統(tǒng),其特征是,該系統(tǒng)還包括 超文本傳輸協(xié)議HTTP服務(wù)器,用于接收客戶端以固定時(shí)間間隔發(fā)送的,以HTTP協(xié)議封裝的攜帶有客戶端簽名信息的心跳包,并轉(zhuǎn)換為以應(yīng)用服務(wù)器 使用的協(xié)議封裝的心跳包,向應(yīng)用服務(wù)器發(fā)送;接收客戶端發(fā)送的以HTTP協(xié)議封裝的用戶身份信息,并轉(zhuǎn)換為以應(yīng)用服 務(wù)器使用的協(xié)議封裝的用戶身份信息,向應(yīng)用服務(wù)器發(fā)送;接收應(yīng)用服務(wù)器發(fā)送的以應(yīng)用服務(wù)器使用的協(xié)議封裝的客戶端簽名信息, 并轉(zhuǎn)換為以HTTP協(xié)議封裝的客戶端簽名信息,向客戶端發(fā)送;所迷應(yīng)用服務(wù)器,接收HTTP服務(wù)器發(fā)送的以應(yīng)用服務(wù)器使用的協(xié)議封裝 的心跳包和用戶身份信息,向HTTP服務(wù)器發(fā)送以應(yīng)用服務(wù)器使用的協(xié)議封裝 的客戶端簽名信息。
10、 一種客戶端,其特征是,該客戶端包括心跳包生成模塊,用于生成攜帶有客戶端簽名信息的心跳包; 心跳包發(fā)送模塊,用于將所述心跳包生成模塊生成的所述心跳包向應(yīng)用服 務(wù)器發(fā)送。
11、 如權(quán)利要求IO所述的客戶端,其特征是,該客戶端進(jìn)一步包括 用戶身份信息發(fā)送模塊,用于發(fā)送用戶輸入的用戶身份信息;客戶端簽名信息保存模塊,用于接收客戶端簽名信息并保存。
12、 一種應(yīng)用服務(wù)器,其特征是,該服務(wù)器包括心跳包接收模塊,用于接收客戶端以固定時(shí)間間隔發(fā)送的攜帶有客戶端簽 名信息的心跳包;客戶端狀態(tài)維護(hù)模塊,用于根據(jù)所述客戶端簽名信息維護(hù)客戶端的狀態(tài)。
13、 如權(quán)利要求12所述的應(yīng)用服務(wù)器,其特征是,該服務(wù)器還包括 簽名信息生成模塊,用于接收客戶端發(fā)送的用戶身份信息,才艮據(jù)用戶身份信息生成與所述用戶對(duì)應(yīng)的服務(wù)器端簽名信息和客戶端簽名信息; 服務(wù)器端簽名信息保存模塊,用于保存服務(wù)器端簽名信息; 客戶端簽名信息發(fā)送模塊,用于發(fā)送客戶端簽名信息。
14、 如權(quán)利要求12所述的應(yīng)用服務(wù)器,其特征是,所述客戶端狀態(tài)維護(hù)模 塊包括客戶端信息驗(yàn)證單元,用于驗(yàn)證客戶端簽名信息,如客戶端簽名信息通過 驗(yàn)證,則向客戶端狀態(tài)設(shè)置單元發(fā)送驗(yàn)證通過消息,否則發(fā)送驗(yàn)證失敗消息;客戶端狀態(tài)設(shè)置單元,用于接收所述客戶端信息驗(yàn)證單元發(fā)送的驗(yàn)證通過 消息,將客戶端的狀態(tài)置為在線;接收所述客戶端信息驗(yàn)證單元發(fā)送的驗(yàn)證失敗消息,將客戶端的狀態(tài)置為 離線。
15、 如權(quán)利要求12所述的應(yīng)用服務(wù)器,其特征是,所述客戶端狀態(tài)維護(hù)模 塊還包括-驗(yàn)證失敗處理單元,用于接收客戶端狀態(tài)信息驗(yàn)i正單元發(fā)送的^S正失敗消 息,并根據(jù)預(yù)設(shè)的驗(yàn)證失敗處理策略進(jìn)行處理。
16、 如權(quán)利要求12所述的應(yīng)用服務(wù)器,其特征是,所述客戶端狀態(tài)維護(hù)模 塊還包括客戶端狀態(tài)發(fā)送單元,將所述客戶端狀態(tài)信息向其他客戶端或相關(guān)的服務(wù) 器發(fā)送。
全文摘要
本發(fā)明公開了一種客戶端狀態(tài)維護(hù)方法、系統(tǒng)、客戶端及應(yīng)用服務(wù)器,通過接收客戶端以固定時(shí)間間隔發(fā)送的攜帶有客戶端簽名信息的心跳包,根據(jù)所述客戶端簽名信息維護(hù)客戶端的狀態(tài)。該方法、系統(tǒng)、客戶端及應(yīng)用服務(wù)器使得客戶端的狀態(tài)信息可以以很短的固定時(shí)間間隔進(jìn)行更新,從而實(shí)現(xiàn)了客戶端狀態(tài)的實(shí)時(shí)維護(hù)。
文檔編號(hào)H04L12/58GK101217512SQ20081000047
公開日2008年7月9日 申請(qǐng)日期2008年1月11日 優(yōu)先權(quán)日2008年1月11日
發(fā)明者賴志勇, 陳韶華, 韓曉瑋 申請(qǐng)人:騰訊科技(深圳)有限公司