專利名稱:一種會(huì)話控制的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別是涉及會(huì)話控制的方法及裝置。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,每天有大量用戶登錄web (萬(wàn)維)網(wǎng)頁(yè)來(lái)獲取信息或發(fā)布信息等。用戶登錄網(wǎng)頁(yè)時(shí)會(huì)建立會(huì)話(session),通過(guò)會(huì)話來(lái)實(shí)現(xiàn)用戶與網(wǎng)絡(luò)的通信傳輸。 用戶退出網(wǎng)頁(yè)時(shí)釋放會(huì)話,以釋放相應(yīng)的資源。目前web應(yīng)用中,用戶點(diǎn)擊網(wǎng)頁(yè)上的用戶退出按鈕以退出業(yè)務(wù)時(shí),系統(tǒng)將釋放該用戶對(duì)應(yīng)的會(huì)話。但是如果用戶以關(guān)閉網(wǎng)頁(yè)的方式退出時(shí),系統(tǒng)必須在系統(tǒng)設(shè)置的超時(shí)時(shí)間后才釋放該會(huì)話,這個(gè)時(shí)間一般都會(huì)很長(zhǎng),該會(huì)話會(huì)在很長(zhǎng)一段時(shí)間內(nèi)占用資源。如果有大量用戶和大量業(yè)務(wù)存在這樣的情況,浪費(fèi)資源的數(shù)量將非??捎^,并且在負(fù)荷較大時(shí)將影響其它用戶登錄業(yè)務(wù)。且如果需要進(jìn)行控制最大登錄用戶數(shù)時(shí),則不能實(shí)現(xiàn)?,F(xiàn)有的一種解決方案是,如果用戶長(zhǎng)時(shí)間沒(méi)有發(fā)出新的業(yè)務(wù)請(qǐng)求,則斷開(kāi)該用戶的會(huì)話。但是用戶沒(méi)有新的業(yè)務(wù)請(qǐng)求不表示該用戶已不應(yīng)用當(dāng)前的業(yè)務(wù),因此該方案超時(shí)釋放會(huì)話是不合適的。另一種方式是使用license (監(jiān)聽(tīng))模式控制用戶登錄。但是在用戶關(guān)閉網(wǎng)頁(yè)時(shí), license模式無(wú)法監(jiān)聽(tīng)到用戶已實(shí)際退出業(yè)務(wù),也就無(wú)法釋放會(huì)話。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種會(huì)話控制的方法及裝置,用于實(shí)現(xiàn)在用戶關(guān)閉主框架時(shí)及時(shí)斷開(kāi)該用戶的會(huì)話,以節(jié)省資源,并且有助于進(jìn)行最大用戶數(shù)控制?!N會(huì)話控制的方法,包括以下步驟接收用戶發(fā)送的登錄請(qǐng)求;收到登錄請(qǐng)求后判斷所有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)是否已超時(shí);若有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)已超時(shí),則釋放該用戶對(duì)應(yīng)的會(huì)話。一種會(huì)話控制的裝置,包括接口模塊,用于接收用戶發(fā)送的登錄請(qǐng)求;控制模塊,用于判斷所有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)是否已超時(shí);若有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)已超時(shí),則釋放該用戶對(duì)應(yīng)的會(huì)話。因?yàn)楝F(xiàn)有技術(shù)中關(guān)閉主框架無(wú)法觸發(fā)會(huì)話的釋放,因此本發(fā)明實(shí)施例在用戶關(guān)閉主框架時(shí)停止對(duì)用戶的內(nèi)存信息對(duì)應(yīng)的計(jì)時(shí),即停止對(duì)用戶的計(jì)時(shí),當(dāng)有新的用戶登錄時(shí), 釋放計(jì)時(shí)超時(shí)用戶的會(huì)話,從而實(shí)現(xiàn)在用戶關(guān)閉主框架時(shí)及時(shí)刪除該用戶的會(huì)話,以節(jié)省資源,以及有助于進(jìn)行最大用戶數(shù)的控制。
圖1為本發(fā)明實(shí)施例中會(huì)話控制的主要方法流程圖2為本發(fā)明實(shí)施例中帶有身份驗(yàn)證的會(huì)話控制的方法流程圖;圖3為本發(fā)明實(shí)施例中帶有負(fù)荷控制的會(huì)話控制的方法流程圖;圖4為本發(fā)明實(shí)施例中裝置的結(jié)構(gòu)圖。
具體實(shí)施例方式因?yàn)楝F(xiàn)有技術(shù)中關(guān)閉主框架無(wú)法觸發(fā)會(huì)話的釋放,因此本發(fā)明實(shí)施例在用戶關(guān)閉主框架時(shí)停止對(duì)用戶的內(nèi)存信息對(duì)應(yīng)的計(jì)時(shí),當(dāng)計(jì)時(shí)超時(shí)時(shí)釋放該用戶對(duì)應(yīng)的會(huì)話,從而實(shí)現(xiàn)在用戶關(guān)閉主框架時(shí)及時(shí)刪除該用戶的會(huì)話,通過(guò)此方法可控制最大訪問(wèn)用戶數(shù),并可以節(jié)省資源。參見(jiàn)圖1,本實(shí)施例中會(huì)話控制的主要方法流程如下步驟101 接收用戶發(fā)送的登錄請(qǐng)求。步驟102 收到登錄請(qǐng)求后判斷所有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)是否已超時(shí)。步驟103 若有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)已超時(shí),則釋放該超時(shí)用戶對(duì)應(yīng)的會(huì)話。 否則不釋放該用戶對(duì)應(yīng)的會(huì)話。還可以確定所述請(qǐng)求登錄的用戶登錄成功,并為該用戶建立會(huì)話。為了提高登錄用戶的安全性,可以判斷請(qǐng)求登錄用戶發(fā)送的用戶名和密碼是否正確,以及判斷該用戶是否已登錄;若用戶名和密碼不正確,或者該用戶已登錄,則確定請(qǐng)求登錄用戶登錄失敗,否則確定請(qǐng)求登錄用戶登錄成功,并為登錄用戶建立會(huì)話。具體過(guò)程參見(jiàn)下面的實(shí)施例。參見(jiàn)圖2,本實(shí)施例中帶有身份驗(yàn)證的會(huì)話控制的方法流程如 下步驟201 接收用戶發(fā)送的登錄請(qǐng)求。步驟202 根據(jù)登錄請(qǐng)求判斷用戶發(fā)送的用戶名和密碼是否正確,若正確,則繼續(xù)步驟203,否則繼續(xù)步驟207。步驟203 判斷所有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)是否已超時(shí),若有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)超時(shí),則繼續(xù)步驟204,否則繼續(xù)步驟205。步驟204 釋放該超時(shí)用戶對(duì)應(yīng)的會(huì)話。繼續(xù)步驟206。步驟205:根據(jù)用戶名判斷所述用戶是否已登錄,若是,則繼續(xù)步驟207,否則繼續(xù)步驟206。步驟206 確定請(qǐng)求登錄用戶登錄成功,并為該用戶建立會(huì)話。步驟207:確定請(qǐng)求登錄用戶登錄失敗。還可以向用戶返回登錄失敗的原因。為了防止負(fù)荷過(guò)大,還需要控制登錄用戶的數(shù)量,所以在用戶登錄時(shí),判斷是否已達(dá)到預(yù)設(shè)的最大用戶數(shù),若是,則確定所述用戶登錄失敗,否則確定所述用戶登錄成功,并為用戶建立會(huì)話。具體過(guò)程參見(jiàn)下面的實(shí)施例。參見(jiàn)圖3,本實(shí)施例中帶有負(fù)荷控制的會(huì)話控制的方法流程如下步驟301 接收用戶發(fā)送的登錄請(qǐng)求。步驟302 根據(jù)登錄請(qǐng)求判斷用戶發(fā)送的用戶名和密碼是否正確,若正確,則繼續(xù)步驟303,否則繼續(xù)步驟307。步驟303 判斷所有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)是否已超時(shí),若有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)超時(shí),釋放該超時(shí)用戶的會(huì)話。繼續(xù)步驟304。
步驟304:根據(jù)用戶名判斷所述用戶是否已登錄,若是,則繼續(xù)步驟307,否則繼續(xù)步驟305。步驟305:判斷是否已達(dá)到預(yù)設(shè)的最大用戶數(shù),若是,則繼續(xù)步驟307,否則繼續(xù)步驟 306。步驟306 確定請(qǐng)求登錄用戶登錄成功,并為該登錄用戶建立會(huì)話。步驟307:確定請(qǐng)求登錄用戶登錄失敗。還可以向用戶返回登錄失敗的原因。用戶登錄成功后,將該用戶的會(huì)話和用戶名對(duì)應(yīng)起來(lái)保存到內(nèi)存中。本實(shí)施例使用Spring security框架實(shí)現(xiàn),Spring security為基于 J2EE(Java2Platform, Enterprise Edition, Java2 平臺(tái)企業(yè)版,Java 為一種編程語(yǔ)言)企業(yè)應(yīng)用軟件提供了全面安全服務(wù)框架。對(duì)Spring security框架中的 AuthenticationftOcessingFilter (授權(quán)過(guò)濾)類進(jìn)行擴(kuò)展,該類是用來(lái)處理form 登陸的過(guò)濾器,與form(表單)登陸有關(guān)的所有操作都是在此進(jìn)行。本實(shí)施例在 AuthenticatiorfrocessingFilter類中實(shí)現(xiàn)了用戶名和密碼的驗(yàn)證,用戶是否已登錄的判斷,是否有關(guān)閉主框架超時(shí)的判斷,在超時(shí)時(shí)釋放相應(yīng)的會(huì)話,以及是否已達(dá)到最大用戶數(shù)的判斷。為用戶建立會(huì)話后,針對(duì)用戶登錄的主框架開(kāi)始計(jì)時(shí),即啟動(dòng)計(jì)時(shí)器,該計(jì)時(shí)超時(shí)時(shí),刷新所述用戶對(duì)應(yīng)的內(nèi)存信息,即刷新用戶的內(nèi)存信息對(duì)應(yīng)時(shí)間,并令計(jì)時(shí)器重新開(kāi)始計(jì)時(shí)。本實(shí)施例通過(guò)刷新所述用戶對(duì)應(yīng)的時(shí)間信息來(lái)保證用戶處于活躍態(tài),以免用戶長(zhǎng)時(shí)間未發(fā)送新的請(qǐng)求而被中斷業(yè)務(wù),釋放會(huì)話。本實(shí)施例中會(huì)話的監(jiān)控過(guò)程的實(shí)例如下
權(quán)利要求
1.一種會(huì)話控制的方法,其特征在于,包括以下步驟接收用戶發(fā)送的登錄請(qǐng)求;收到登錄請(qǐng)求后判斷所有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)是否已超時(shí);若有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)已超時(shí),則釋放該用戶對(duì)應(yīng)的會(huì)話。
2.如權(quán)利要求1所述的方法,其特征在于,還包括步驟確定請(qǐng)求登錄用戶登錄成功, 并為登錄用戶建立會(huì)話。
3.如權(quán)利要求1所述的方法,其特征在于,接收用戶發(fā)送的登錄請(qǐng)求后,還包括步驟 判斷請(qǐng)求登錄用戶發(fā)送的用戶名和密碼是否正確,以及判斷該用戶是否已登錄;若用戶名和密碼不正確,或者該用戶已登錄,則確定該用戶登錄失敗,否則確定該用戶登錄成功,并為該用戶建立會(huì)話。
4.如權(quán)利要求1所述的方法,其特征在于,釋放該用戶對(duì)應(yīng)的會(huì)話后,還包括步驟判斷是否已達(dá)到預(yù)設(shè)的最大用戶數(shù),若是,則確定請(qǐng)求登錄用戶登錄失敗,否則確定該用戶登錄成功,并為該用戶建立會(huì)話。
5.如權(quán)利要求2、3或4所述的方法,其特征在于,為用戶建立會(huì)話后,還包括步驟針對(duì)用戶登錄的主框架開(kāi)始計(jì)時(shí),該計(jì)時(shí)超時(shí)時(shí),刷新所述用戶的內(nèi)存信息對(duì)應(yīng)的計(jì)時(shí)。
6.如權(quán)利要求5所述的方法,其特征在于,用戶登錄成功后,還包括步驟收到登錄成功的用戶關(guān)閉主框架的命令時(shí),停止對(duì)主框架的計(jì)時(shí)。
7.一種會(huì)話控制的裝置,其特征在于,包括接口模塊,用于接收用戶發(fā)送的登錄請(qǐng)求;控制模塊,用于判斷所有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)是否已超時(shí);若有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)已超時(shí),則釋放該用戶對(duì)應(yīng)的會(huì)話。
8.如權(quán)利要求7所述的裝置,其特征在于,控制模塊還用于確定請(qǐng)求登錄用戶登錄成功,并為登錄用戶建立會(huì)話。
9.如權(quán)利要求7所述的裝置,其特征在于,控制模塊還用于判斷請(qǐng)求登錄用戶發(fā)送的用戶名和密碼是否正確,以及判斷該用戶是否已登錄;若用戶名和密碼不正確,或者該用戶已登錄,則確定該用戶登錄失敗,否則確定該用戶登錄成功,并為登錄用戶建立會(huì)話。
10.如權(quán)利要求7所述的裝置,其特征在于,控制模塊還用于判斷是否已達(dá)到預(yù)設(shè)的最大用戶數(shù),若是,則確定請(qǐng)求登錄用戶登錄失敗,否則確定該用戶登錄成功,并為登錄用戶建立會(huì)話。
11.如權(quán)利要求8、9或10所述的裝置,其特征在于,控制模塊還用于針對(duì)用戶登錄的主框架開(kāi)始計(jì)時(shí),該計(jì)時(shí)超時(shí)時(shí),刷新所述用戶的內(nèi)存信息對(duì)應(yīng)的計(jì)時(shí)。
全文摘要
本發(fā)明公開(kāi)了一種會(huì)話控制的方法,適用于在同一框架下實(shí)現(xiàn)的web系統(tǒng),當(dāng)用戶關(guān)閉主框架時(shí)能及時(shí)刪除該用戶的會(huì)話,通過(guò)此方法可控制最大訪問(wèn)用戶數(shù),并可以節(jié)省資源。所述方法包括接收用戶發(fā)送的登錄請(qǐng)求;并驗(yàn)證用戶信息成功后,判斷所有已登錄用戶所對(duì)應(yīng)的計(jì)時(shí)是否已超時(shí);若有超時(shí),則釋放所有已超時(shí)用戶對(duì)應(yīng)的會(huì)話;然后,判斷該請(qǐng)求登錄的用戶是否已登錄和系統(tǒng)是否已達(dá)最大登錄用戶數(shù);若均否,則登錄成功。否則,登錄失敗。本發(fā)明還公開(kāi)了用于實(shí)現(xiàn)所述方法的裝置。
文檔編號(hào)H04L29/06GK102263797SQ20111025272
公開(kāi)日2011年11月30日 申請(qǐng)日期2011年8月30日 優(yōu)先權(quán)日2011年8月30日
發(fā)明者謝瑞蓮 申請(qǐng)人:大唐移動(dòng)通信設(shè)備有限公司