專利名稱::一種基于實時會話狀態(tài)管理的方法、裝置及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,尤其涉及一種基于實時會話狀態(tài)管理的方法、裝置及系統(tǒng)。
背景技術(shù):
:當(dāng)前的網(wǎng)絡(luò)管理軟件,大多以Web應(yīng)用程序出現(xiàn)。Web應(yīng)用程序又稱為B/S(Browser/Server,瀏覽器/服務(wù)器)架構(gòu)的應(yīng)用程序,如圖1所示,客戶端使用瀏覽器(如IE、Firefox等)與Web服務(wù)器進(jìn)行通信,并向用戶展示業(yè)務(wù)數(shù)據(jù);Web服務(wù)器在收到客戶端的請求后,通過服務(wù)器業(yè)務(wù)處理程序執(zhí)行業(yè)務(wù)處理,并將處理結(jié)果以HTML(HypertextMarkupLanguage,超文本標(biāo)識語言)的形式反饋給客戶端瀏覽器。Web應(yīng)用程序構(gòu)建于HTTP(HypertextTransferProtocol,超文本傳輸協(xié)議)基礎(chǔ)之上,客戶端與服務(wù)器之間的所有通信和數(shù)據(jù)交互均使用HTTP。HTTP雖然是基于TCP(TransmissionControlProtocol,傳輸控制協(xié)議)實現(xiàn)的,但HTTP本身為無連接協(xié)議,即客戶端瀏覽器與服務(wù)器之間不會一直保持網(wǎng)絡(luò)連接,僅當(dāng)客戶端需要從服務(wù)器獲取數(shù)據(jù)或向服務(wù)器提交請求時,才會與服務(wù)器建立TCP連接(例如^i舌連接);而當(dāng)數(shù)據(jù)交互完成以后,TCP連接會被斷開,直到下一次數(shù)據(jù)交互時才重新建立TCP連接。但是,作為網(wǎng)絡(luò)管理軟件的Web應(yīng)用程序,需要讓客戶端與服務(wù)器之間保持一種會話關(guān)系,并維護(hù)該會話狀態(tài)。這樣,服務(wù)器就能夠準(zhǔn)確的判斷出發(fā)送某次特定HTTP請求的客戶端,是否曾經(jīng)發(fā)送過其他請求,并能夠建立多次請求之間的關(guān)系,進(jìn)而能夠依據(jù)會話信息,實現(xiàn)對用戶的識別、管理和狀態(tài)維護(hù)等操作。客戶端與服務(wù)器之間的會話狀態(tài)有兩種,分別是離線和在線(即無效或有效)。這兩種狀態(tài)均由服務(wù)器進(jìn)行維護(hù),相互轉(zhuǎn)換關(guān)系如圖2所示當(dāng)用戶4通過客戶端瀏覽器訪問服務(wù)器的Web應(yīng)用時,由服務(wù)器自動生成會話并進(jìn)行維護(hù),此時用戶為"在線"狀態(tài)。有兩種方式可以將"在線"狀態(tài)轉(zhuǎn)換為"離線"狀態(tài)一種是服務(wù)器注銷會話,通常由客戶端向服務(wù)器發(fā)出注銷請求,服務(wù)器收到注銷請求后通過注銷對應(yīng)的會話,實現(xiàn)用戶注銷功能;另一種是在特定的超時閑置時長間隔內(nèi),服務(wù)器未收到該會話對應(yīng)客戶端的任何請求,服務(wù)器將此會話自動注銷,這種情況通常發(fā)生在用戶未執(zhí)行手工注銷操作(向服務(wù)器發(fā)送注銷請求),而直接關(guān)閉瀏覽器,此時會話的失效只能等待服務(wù)器超時?,F(xiàn)有技術(shù)中由服務(wù)器會話控制器對會話狀態(tài)進(jìn)行維護(hù)管理,但該方案存在以下缺點客戶端需要訪問服務(wù)器來判斷會話狀態(tài)是否有效,如果客戶端瀏覽器一直停留在特定頁面,而不執(zhí)行訪問服務(wù)器的操作,此時無法判斷會話狀態(tài)是否失效;只有當(dāng)客戶端向服務(wù)器發(fā)送訪問請求后,才能從服務(wù)器的回應(yīng)中獲知該會話狀態(tài)是否仍然有效,因此會話狀態(tài)更新的實時性差。另外,在會話已經(jīng)失效時,客戶端停留在特定頁面,如果用戶沒有對客戶端瀏覽器進(jìn)行屏蔽操作,則客戶端頁面顯式的內(nèi)容不會隱藏,給內(nèi)容的安全性帶來隱患。還有,當(dāng)用戶通#戶端在Web界面上輸入數(shù)據(jù)時,在輸入過程中,由于服務(wù)器超時導(dǎo)致會話失效,但用戶并不知道,仍然繼續(xù)界面輸入;輸入完成后,當(dāng)用戶執(zhí)行數(shù)據(jù)提交操作時,服務(wù)器發(fā)現(xiàn)該客戶端對應(yīng)的會話已經(jīng)超時,直接將用戶導(dǎo)航到重新登錄的頁面,用戶輸入的數(shù)據(jù)將全部丟失。
發(fā)明內(nèi)容本發(fā)明提供了一種基于實時會話狀態(tài)管理的方法、裝置及系統(tǒng),為用戶提供一種客戶端控制會話狀態(tài)的機(jī)制,以提升Web應(yīng)用程序的可用性。本發(fā)明提供了一種基于實時會話狀態(tài)管理的方法,應(yīng)用于包括客戶端和服務(wù)器的系統(tǒng)中,所述客戶端和服務(wù)器分別包括會話控制器,所述方法包括以下步驟所述客戶端會話控制器設(shè)置操作事件與會話狀態(tài)更新的對應(yīng)關(guān)系;所述客戶端會話控制器檢測操作事件;所述客戶端會話控制器根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持在線狀態(tài)。其中,如果會話狀態(tài)由在線轉(zhuǎn)換為離線,所述客戶端會話控制器屏蔽顯示的頁面內(nèi)容,并提示用戶進(jìn)行重新登錄。其中,所ii^戶端會話控制器檢測到用戶重新登錄成功后,恢復(fù)所述頁面內(nèi)容。其中,所述客戶端會話控制器檢測操作事件,具體包括所M戶端會話控制器檢測到會話狀態(tài)變化的觸發(fā)信息;或所述客戶端會話控制器接收到服務(wù)器發(fā)送的同步信息,所述同步信息中攜帶會話狀態(tài)更新指示。其中,所述客戶端會話控制器根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),之后還包括所述客戶端會話控制器與所述服務(wù)器會話控制器同步所述會話狀態(tài)。其中,如果會話狀態(tài)為維持在線狀態(tài),在客戶端本地設(shè)置定時器,當(dāng)獲知會話需要維持在線狀態(tài)時,重新啟動該定時器,并與所述服務(wù)器會話控制器同步會話狀態(tài),使所述服務(wù)器會話控制器初始化該會話對應(yīng)的定時器;當(dāng)該定時器超時時,將該會話轉(zhuǎn)為離線。本發(fā)明提供了一種基于實時會話狀態(tài)管理的系統(tǒng),包括客戶端和服務(wù)器,所述客戶端和服務(wù)器分別包括會話控制器;所述客戶端會話控制器,用于設(shè)置操作事件與會活狀態(tài)更新的對應(yīng)關(guān)系,并檢測操作事件;根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持會話在線;所述服務(wù)器會話控制器,用于與所述客戶端會話控制器同步所述會話狀態(tài)。本發(fā)明提供了一種客戶端設(shè)備,應(yīng)用于包括客戶端和服務(wù)器的系統(tǒng)中,所述客戶端包括會話控制器,所述客戶端會話控制器包括設(shè)置模塊,用于設(shè)置操作事件與會話狀態(tài)更新的對應(yīng)關(guān)系;檢測模塊,用于檢測操作事件;會話狀態(tài)維護(hù)模塊,分別與所述設(shè)置模塊和檢測模塊連接,用于根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持在線狀態(tài)。其中,還包括安全模塊,與所述會話狀態(tài)維護(hù)模塊連接,用于會話狀態(tài)由在線轉(zhuǎn)換為離線時,屏蔽顯示的頁面內(nèi)容,并提示用戶進(jìn)行重新登錄,檢測到用戶重新登錄成功后,恢復(fù)所述頁面內(nèi)容。其中,所述檢測模塊,具體用于檢測到會話狀態(tài)變化的觸發(fā)信息;或接收到服務(wù)器發(fā)送的同步信息,所述同步信息中攜帶會話狀態(tài)更新指示。其中,還包括會話狀態(tài)同步模塊,與所述會話狀態(tài)維護(hù)模塊連接,用于與所述服務(wù)器會話控制器同步所述會話狀態(tài)。其中,所述會話狀態(tài)維護(hù)模塊,具體用于如果會話狀態(tài)為維持在線狀態(tài),在客戶端本地設(shè)置定時器,當(dāng)獲知會話需要維持在線狀態(tài)時,重新啟動該定時器,并通過所述會話狀態(tài)同步模塊與所述服務(wù)器會話控制器同步會話狀態(tài),使所述服務(wù)器會話控制器初始化該會話對應(yīng)的定時器;當(dāng)該定時器超時時,將該會話轉(zhuǎn)為離線。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點本發(fā)明中,由于通過客戶端會話控制器檢測影響會話狀態(tài)的操作事件,并根據(jù)預(yù)先配置的操作事件與會話狀態(tài)的對應(yīng)關(guān)系,更新會話狀態(tài);使得客戶端不需要訪問服務(wù)器就可以判斷會話狀態(tài)是否有效,并對會話狀態(tài)進(jìn)行維護(hù)管理,增強(qiáng)了會活狀態(tài)更新的實時性。另外,在會話已經(jīng)失效時,客戶端會話控制器可以對客戶端瀏覽器進(jìn)行屏蔽操作,將客戶端頁面顯式的內(nèi)容隱藏,保證了頁面內(nèi)容的安全性。圖1是現(xiàn)有技術(shù)中Web應(yīng)用程序的基本流程圖2是現(xiàn)有技術(shù)中兩種M狀態(tài)及其轉(zhuǎn)換關(guān)系示意圖3是本發(fā)明中一種基于實時會話狀態(tài)管理的系統(tǒng)結(jié)構(gòu)圖4是本發(fā)明中一種客戶端設(shè)備結(jié)構(gòu)圖5是本發(fā)明中一種基于實時會話狀態(tài)管理的方法流程圖6是本發(fā)明中客戶端會話控制器將會話狀態(tài)由在線轉(zhuǎn)為離線流程圖7是本發(fā)明中隱藏客戶端頁面內(nèi)容流程圖8是本發(fā)明中客戶端會話控制器通過初始化定時器維持會話在線狀態(tài)流程圖。具體實施例方式本發(fā)明的核心思路是在原有的由服務(wù)器單獨實現(xiàn)的會話控制方案的基礎(chǔ)上進(jìn)行改進(jìn),由服務(wù)器和客戶端共同實現(xiàn)會話信息的控制和管理。本發(fā)明中,由于通過客戶端會話控制器檢測影響會話狀態(tài)的操作事件,并根據(jù)預(yù)先配置的操作事件與會話狀態(tài)的對應(yīng)關(guān)系,更新會話狀態(tài);4吏得客戶端不需要訪問服務(wù)器就可以判斷會話狀態(tài)是否有效,并對會話狀態(tài)進(jìn)行維護(hù)管理。本發(fā)明提供了一種基于實時會話狀態(tài)管理的系統(tǒng),包括客戶端和服務(wù)器,所述客戶端和服務(wù)器分別包括會話控制器;如圖3所示所述客戶端會話控制器,用于設(shè)置操作事件與會話狀態(tài)更新的對應(yīng)關(guān)系,并檢測操作事件;根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持會話在線;所述服務(wù)器會話控制器,用于與所述客戶端會話控制器同步所述會話狀態(tài)。其中,上述系統(tǒng)中的客戶端會話控制器具體結(jié)構(gòu)如圖4所示,包括設(shè)置模塊410,用于設(shè)置操作事件與會話狀態(tài)更新的對應(yīng)關(guān)系。檢測模塊420,用于檢測操作事件,具體用于檢測到會話狀態(tài)變化的觸發(fā)信息;或接收到服務(wù)器發(fā)送的同步信息,所述同步信息中攜帶會話狀態(tài)更新指示。會話狀態(tài)維護(hù)模塊430,分別與設(shè)置模塊410和檢測模塊420連接,用于根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持在線狀態(tài)。會話狀態(tài)維護(hù)模塊430,具體用于如果會話狀態(tài)為維持在線狀態(tài),在客戶端本地設(shè)置定時器,當(dāng)獲知會話需要維持在線狀態(tài)時,重新啟動該定時器,并通過會話狀態(tài)同步;f莫塊450與所述服務(wù)器會話控制器同步會話狀態(tài),使所述服務(wù)器會話控制器初始化該會話對應(yīng)的定時器;當(dāng)該定時器超時時,將該會話轉(zhuǎn)為離線。安全模塊440,與會話狀態(tài)維護(hù)模塊430連接,用于會活狀態(tài)由在線轉(zhuǎn)換為離線時,屏蔽顯示的頁面、內(nèi)容,并提示用戶進(jìn)行重新登錄,檢測到用戶重新登錄成功后,恢復(fù)所述頁面內(nèi)容。會話狀態(tài)同步模塊450,與會話狀態(tài)維護(hù)模塊430連接,用于與所述服務(wù)器會話控制器同步所述會話狀態(tài)。本發(fā)明提供了一種基于實時會話狀態(tài)管理的方法,應(yīng)用于包括客戶端和服務(wù)器的系統(tǒng)中,所述客戶端和服務(wù)器分別包括會話控制器,該方法如圖5所示,包括以下步驟步驟501,所ii^戶端會話控制器設(shè)置操作事件與會話狀態(tài)更新的對應(yīng)關(guān)系;步驟502,所述客戶端會話控制器檢測操作事件;具體包括所述客戶端會話控制器檢測到會話狀態(tài)變化的觸發(fā)信息;或所述客戶端會話控制器接收到服務(wù)器發(fā)送的同步信息,所述同步信息中攜帶會話狀態(tài)更新指示。步驟503,所ii^戶端會話控制器根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新9會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持在線狀態(tài)。如果會話狀態(tài)由在線轉(zhuǎn)換為離線,所述客戶端會話控制器屏蔽顯示的頁面內(nèi)容,并提示用戶進(jìn)行重新登錄;所述客戶端會話控制器檢測到用戶重新登錄成功后,恢復(fù)所述頁面內(nèi)容。根據(jù)上述原理,結(jié)合具體應(yīng)用場景對本發(fā)明進(jìn)行詳細(xì)說明。當(dāng)客戶端訪問服務(wù)器時,由服務(wù)器自動生成會話并進(jìn)行維護(hù)管理,服務(wù)器與客戶端之間的會話關(guān)系是通過建立一個會話ID并對其進(jìn)行維護(hù)而實現(xiàn)的。客戶端在第一次訪問服務(wù)器時,服務(wù)器會生成一個全局唯一的ID(字符串形式),在服務(wù)器對其進(jìn)行狀態(tài)維護(hù)的同時,將此ID以隱含參數(shù)的方式返回給客戶端;客戶端在發(fā)送下一個請求時,自動將此ID通過Cookie(小型文字檔案)或URL(UniformResourceLocator,統(tǒng)一資源定位符)參數(shù)的方式傳給服務(wù)器,于是服務(wù)器能夠?qū)纱握埱箨P(guān)聯(lián)到一個會話中,實現(xiàn)對該會話狀態(tài)的維護(hù)。服務(wù)器對所有會話信息,維護(hù)有一個超時閑置時長的屬性。當(dāng)某會話在此時長范圍內(nèi),沒有收到任何客戶端發(fā)來的請求,則服務(wù)器認(rèn)為此會話已經(jīng)中斷,將此會話信息刪除(不再維護(hù)此M信息)。此后如果使用該會話的客戶端再次發(fā)起請求,則服務(wù)器會建立一個新的會話,并將新會話ID重新下發(fā)給客戶端。本發(fā)明中,在會話生成后由客戶端和服務(wù)器共同進(jìn)行維護(hù)管理,即當(dāng)會話建立后,客戶端會話控制器中維護(hù)此會話狀態(tài)為在線,當(dāng)客戶端會話控制器檢測到使會話狀態(tài)更新的事件后,更新會話狀態(tài),并將更新后的會話狀態(tài)同步給服務(wù)器會話控制器。其中,會話狀態(tài)更新包括兩種情況,一種是會話由在線變?yōu)殡x線,一種是通過初始化定時器維持會話在線狀態(tài)。本發(fā)明中,客戶端會話控制器將會話狀態(tài)由在線轉(zhuǎn)為離線,具體過程如圖6所示,包括以下步驟步驟601,在客戶端會話控制器中預(yù)先配置了操作事件(例如鍵盤事件、鼠標(biāo)事件等)與會話狀態(tài)更變的對應(yīng)關(guān)系,如表1所示。需要說明的是,表l中只列出了一些簡單示例,實際應(yīng)用中會存在多種其他情況,在此不再贅述。表l:<table>tableseeoriginaldocumentpage11</column></row><table>步驟602,客戶端會話控制器檢測到發(fā)生操作事件,根據(jù)操作事件與表l中的對應(yīng)關(guān)系確定會話狀態(tài)。例如,檢測到用戶通過鍵盤輸入的字符串quit,通過查找表1中的對應(yīng)關(guān)系,獲知需要將該會話由在線轉(zhuǎn)為離線;檢測到用戶通過鼠標(biāo)在頁面中某個區(qū)域連續(xù)點擊兩下以上,通過查找表1中的對應(yīng)關(guān)系,獲知需要將該會話由在線轉(zhuǎn)為離線;某頁面超過預(yù)設(shè)時間沒有接收用戶的操作命令,對應(yīng)為會話狀態(tài)由在線轉(zhuǎn)為離線;通過設(shè)置頁面操作超時定時器,當(dāng)用戶對某個頁面進(jìn)行一次操作后,該定時器都會啟動,如果下一次操作在該定時器到時前到達(dá),則該定時器重新定時,如果該定時器到時后仍然沒有接收用戶的操作命令(客戶端瀏覽器一直停留在特定頁面,而不執(zhí)行訪問服務(wù)器的操作),則該定時器超時,根據(jù)表l的對應(yīng)關(guān)系,獲知會話狀態(tài)由在線轉(zhuǎn)為離線。步驟603,客戶端會話控制器向到服務(wù)器會話控制器發(fā)送同步信息,將該會話的最新狀態(tài)通知服務(wù)器會話控制器,使服務(wù)器會話控制器刪除該會話信臺客戶端會話控制器保持與服務(wù)器會話控制器的定時心跳,即定期(如每隔一分鐘)與服務(wù)器通信一次,對客戶端和服務(wù)器雙方保存的會話狀態(tài)信息進(jìn)行定時同步??蛻舳伺c服務(wù)器的定時心跳消息,可以通過客戶端啟動一個定時器(Timer),并4吏用AJAX(AsynchronousJavaScriptandXML,異步JavaScript及XML)才支術(shù)實現(xiàn)。其中,AJAX用于創(chuàng)建Web應(yīng)用程序,在傳統(tǒng)的JavaScript編程中,如果需要從服務(wù)器上的文件或數(shù)據(jù)庫中得到任何信息,或者向服務(wù)器發(fā)送信息,必須利用一個HTML表單向服務(wù)器GET或POST數(shù)據(jù)。而用戶則需要單擊"提交"按鈕來發(fā)送/獲取信息,等待服務(wù)器的響應(yīng),然后一張新的頁面會加載結(jié)果。由于每當(dāng)用戶提交輸入后服務(wù)器都會返回一張新的頁面,傳統(tǒng)的Web應(yīng)用程序變得運行緩慢,且越來越不友好。通過利用AJAX中,JavaScript的XMLHttpRequest對象,直接與服務(wù)器來通信,通過使用HTTP請求,Web頁可向服務(wù)器進(jìn)行請求,并得到來自服務(wù)器的響應(yīng),而不加載頁面。用戶可以停留在同一個頁面,不會注意到腳本在后臺請求過頁面,或向服務(wù)器發(fā)送過數(shù)據(jù)。該實施例中,由于通過客戶端會話控制器檢測影響會話狀態(tài)的操作事件,并根據(jù)預(yù)先配置的操作事件與會話狀態(tài)的對應(yīng)關(guān)系,更新會話狀態(tài);使得客戶端不需要訪問服務(wù)器就可以判斷會話狀態(tài)是否有效,并對會話狀態(tài)進(jìn)行維護(hù)管理,增強(qiáng)了會活狀態(tài)更新的實時性。本發(fā)明中,當(dāng)客戶端會話控制器檢測到觸發(fā)會話狀態(tài)由在線轉(zhuǎn)為離線的操作事件,將會話狀態(tài)修改為離線時,為了保證客戶端顯示的頁面內(nèi)容的安全性,需要對客戶端瀏覽器進(jìn)行屏蔽,以隱藏客戶端頁面內(nèi)容。具體過程如圖7所示,包括以下步驟步驟701,客戶端會話控制器檢測到觸發(fā)會話狀態(tài)由在線轉(zhuǎn)為離線的操作事件,對客戶端瀏覽器進(jìn)行屏蔽。具體地,離線包括暫時離線和永久離線兩種,暫時離線是由一些暫時因素造成,例如,由于用戶離開,長時間沒有對客戶端瀏覽器的頁面進(jìn)行操作,而實際上并不希望退出該會話;用戶的永久離線是用戶主動要求退出該會話而直接輸入離線請求,而短時間內(nèi)不會在建立該會話。因此,為了減少客戶端會話服務(wù)器重新建立會話的過程,對于這種暫時離線可以在確定該會話轉(zhuǎn)換為離線后,屏蔽該會話對應(yīng)的界面內(nèi)容。當(dāng)然,對于這種暫時離線也可以直接將會話信息刪除。這種屏蔽可以體現(xiàn)為客戶端的輸入禁止/啟用特性,例如,可以通過HTML(HypertextMarkupLanguage,超文件標(biāo)識語言)/CSS(CascadingStyleSheets,層疊樣式表)的層(Layer)技術(shù),在原有Web界面之上,增加一個蒙層,屏蔽界面內(nèi)容并給用戶提示信息。例如,當(dāng)會話超時后,自動顯示一個"模態(tài)"對話框,讓用戶重新輸入登錄密碼;同時以不透明的蒙層將頁面內(nèi)容遮住,確保界面的安全性。步驟702,客戶端會話控制器向客戶端瀏覽器發(fā)送提示信息,提示用戶重新登錄,建立該會話連接。步驟703,判斷用戶是否通過輸入用戶名和密碼等信息重新登錄成功,如果是,則轉(zhuǎn)步驟704;如果不成功,包括兩種情況一種是用戶沒有重新登錄,另一種是用戶重新登錄了但用戶名或密碼輸入不正確,說明用戶可能不會使用該會話或沒有權(quán)限繼續(xù)使用該會話,轉(zhuǎn)步驟705。步驟704,客戶端會話控制器將該會話轉(zhuǎn)為在線,通過將蒙層去除來恢復(fù)頁面內(nèi)容,保持原來的頁面信息,讓用戶繼續(xù)完成界面才喿作。步驟705,將該會話信息刪除。為了防止用戶誤操作致使用戶名和/或密碼不正確的情況,可以再次給出提示信息,讓用戶重新登錄。本實施例中,在會話已經(jīng)失效時,客戶端會話控制器可以對客戶端瀏覽器進(jìn)行屏蔽操作,將客戶端頁面顯式的內(nèi)容隱藏,保證了頁面內(nèi)容的安全性。本發(fā)明中,客戶端會話控制器通過初始化定時器維持會話在線狀態(tài)的應(yīng)用場景中,具體過程如圖8所示,包括以下步驟步驟801,客戶端會話控制器檢測到發(fā)生操作事件,根據(jù)操作事件與表l中的對應(yīng)關(guān)系確定會話狀態(tài)為維持在線。例如,^r測到用戶在頁面上輸入任意連續(xù)兩個以上字符串。實際上輸入一個字母或數(shù)字也可以,但是有可能用戶誤操作可能輸入某個字母或數(shù)字或鍵盤上某個按鍵,為了減少這種誤操作13導(dǎo)致會話在線維持,特定義輸入兩個或兩個以上字符才會引起維持會話的操作。或,檢測到用戶通過鼠標(biāo)連續(xù)點擊頁面上某個區(qū)域兩次以上,通過查找表1的對應(yīng)關(guān)系,獲知會話需要維持在線狀態(tài)。步驟802,在客戶端本地設(shè)置定時器,當(dāng)獲知會話需要維持在線狀態(tài)時,重新啟動該定時器,只有當(dāng)該定時器超時時,將該^^舌轉(zhuǎn)為離線。步驟803,當(dāng)獲知會話需要維持在線狀態(tài)時,向服務(wù)器發(fā)送同步信息,使服務(wù)器初始化該會話對應(yīng)的定時器,保證在該定時器的時長內(nèi)該會話在線。本實施例中,客戶端的操作時間可以影響會話狀態(tài),例如在Web界面上輸入數(shù)據(jù)時,可以影響會話狀態(tài)。例如,在輸入過程中,由于服務(wù)器超時導(dǎo)致會話失效,但用戶并不知道,仍然繼續(xù)界面輸入,而此時輸入信息可以維持會話有效狀態(tài),并同步給服務(wù)器會話控制器;保證數(shù)據(jù)輸入過程直到輸入完成,在客戶端會話控制器和服務(wù)器會話控制器中該會話都是有效的,避免出現(xiàn)當(dāng)用戶執(zhí)行數(shù)據(jù)提交操作時,服務(wù)器發(fā)現(xiàn)該客戶端對應(yīng)的^i舌已經(jīng)超時,直接將用戶導(dǎo)航到重新登錄的頁面,用戶輸入的數(shù)據(jù)將全部丟失。本發(fā)明中,由于服務(wù)器會話控制器中會維護(hù)多個客戶端會話信息,服務(wù)器對所有會話信息,維護(hù)有一個超時閑置時長的屬性。當(dāng)某會話在此時長范圍內(nèi),沒有收到任何客戶端請求,則服務(wù)器認(rèn)為該會話已經(jīng)中斷,會將該會話信息刪除,不再維護(hù)此會話信息。當(dāng)服務(wù)器會話控制器接收到來自客戶端會話控制器的同步信息后,與本地會話狀態(tài)進(jìn)行比較,如果客戶端會話控制器記錄該會話有效,而本地對應(yīng)的會話信息已經(jīng)失效,則在同步消息的回應(yīng)消息中反4貴給客戶端,以通知客戶端處理會話失效事件,使客戶端會話服務(wù)器將該會話更新為失效狀態(tài)。如果客戶端會話控制器記錄該會話失效,而本地對應(yīng)的會話信息為有效,則更新服務(wù)器會話控制器的會話為失效,并刪除對應(yīng)的會話信息。如果客戶端會話控制器和服務(wù)器會話控制器對該會話信息都為有效,則有效,都為無效,則無歲丈。當(dāng)然,如果服務(wù)器會話控制器檢測到某會話失效,也可以不等客戶端會話服務(wù)器的同步信息,而直接向該客戶端會話控制器發(fā)送同步信息,以通知其該會話已失效。其中,客戶端與服務(wù)器之間的通信可使用AJAX(AsynchronousJavaScriptandXML,異步JavaScript和XML)實現(xiàn),可避免由于頁面刷新,導(dǎo)致界面信息丟失的問題。通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實施例的示意圖,附圖中的模塊或流程并不一定是實施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實施例中的裝置中的模塊可以按照實施例描述進(jìn)行分布于實施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實施例的一個或多個裝置中。上述實施例的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。上述本發(fā)明序號僅^l為了描述,不代表實施例的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。權(quán)利要求1、一種基于實時會話狀態(tài)管理的方法,應(yīng)用于包括客戶端和服務(wù)器的系統(tǒng)中,所述客戶端和服務(wù)器分別包括會話控制器,其特征在于,所述方法包括以下步驟所述客戶端會話控制器設(shè)置操作事件與會話狀態(tài)更新的對應(yīng)關(guān)系;所述客戶端會話控制器檢測操作事件;所述客戶端會話控制器根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持在線狀態(tài)。2、如權(quán)利要求l所述的方法,其特征在于,如果會話狀態(tài)由在線轉(zhuǎn)換為離線,所述客戶端會話控制器屏蔽顯示的頁面內(nèi)容,并提示用戶進(jìn)行重新登錄,并在所述客戶端會話控制器檢測到用戶重新登錄成功后,恢復(fù)所述頁面內(nèi)容。3、如權(quán)利要求l所述的方法,其特征在于,所述客戶端會話控制器檢測操作事件,具體包括所述客戶端會話控制器檢測到會話狀態(tài)變化的觸發(fā)信息;或所述客戶端會話控制器接收到服務(wù)器發(fā)送的同步信息,所述同步信息中攜帶會話狀態(tài)更新指示。4、如權(quán)利要求l所述的方法,其特征在于,所ii^戶端會話控制器根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),之后還包括所述客戶端會話控制器與所述服務(wù)器會話控制器同步所述會話狀態(tài)。5、如權(quán)利要求l所述的方法,其特征在于,如果會話狀態(tài)為維持在線狀態(tài),在客戶端本地設(shè)置定時器,當(dāng)獲知會話需要維持在線狀態(tài)時,重新啟動該定時器,并與所述服務(wù)器會話控制器同步會話狀態(tài),使所述服務(wù)器會話控制器初始化該會話對應(yīng)的定時器;當(dāng)該定時器超時時,將該會話轉(zhuǎn)為離線。6、一種基于實時會話狀態(tài)管理的系統(tǒng),包括客戶端和服務(wù)器,其特征在于,所a戶端和服務(wù)器分別包括會話控制器;所it^戶端會話控制器,用于設(shè)置操作事件與會話狀態(tài)更新的對應(yīng)關(guān)系,并檢測操作事件;根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持會話在線;所述服務(wù)器會話控制器,用于與所述客戶端會話控制器同步所述會話狀態(tài)。7、一種客戶端設(shè)備,應(yīng)用于包括客戶端和服務(wù)器的系統(tǒng)中,所述客戶端包括會話控制器,其特征在于,所M戶端會話控制器包括設(shè)置模塊,用于設(shè)置操作事件與會話狀態(tài)更新的對應(yīng)關(guān)系;檢測模塊,用于檢測操作事件;會話狀態(tài)維護(hù)模塊,分別與所述設(shè)置模塊和檢測模塊連接,用于根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持在線狀態(tài)。8、如權(quán)利要求7所述的客戶端設(shè)備,其特征在于,還包括安全模塊,與所述會話狀態(tài)維護(hù)模塊連接,用于會話狀態(tài)由在線轉(zhuǎn)換為離線時,屏蔽顯示的頁面內(nèi)容,并提示用戶進(jìn)4亍重新登錄,檢測到用戶重新登錄成功后,恢復(fù)所述頁面內(nèi)容。9、如權(quán)利要求7所述的客戶端設(shè)備,其特征在于,所述檢測模塊,具體用于檢測到會話狀態(tài)變化的觸發(fā)信息;或接收到服務(wù)器發(fā)送的同步信息,所述同步信息中攜帶會話狀態(tài)更新指示。10、如權(quán)利要求7所述的客戶端設(shè)備,其特征在于,還包括會話狀態(tài)同步模塊,與所述會話狀態(tài)維護(hù)模塊連接,用于與所述服務(wù)器會話控制器同步所述會話狀態(tài)。11、如權(quán)利要求7所述的客戶端設(shè)備,其特征在于,所述會話狀態(tài)維護(hù)模塊,具體用于如果會話狀態(tài)為維持在線狀態(tài),在客戶端本地設(shè)置定時器,當(dāng)獲知會話需要維持在線狀態(tài)時,重新啟動該定時器,并通過所述會話狀態(tài)同步模塊與所述服務(wù)器會話控制器同步會話狀態(tài),使所述服務(wù)器會話控制器初始化該會話對應(yīng)的定時器;當(dāng)該定時器超時時,將該會話轉(zhuǎn)為離線。全文摘要本發(fā)明公開了一種基于實時會話狀態(tài)管理的方法,應(yīng)用于包括客戶端和服務(wù)器的系統(tǒng)中,所述客戶端和服務(wù)器分別包括會話控制器,所述方法包括以下步驟所述客戶端會話控制器設(shè)置操作事件與會話狀態(tài)更新的對應(yīng)關(guān)系;所述客戶端會話控制器檢測操作事件;所述客戶端會話控制器根據(jù)所述操作事件及所述對應(yīng)關(guān)系更新會話狀態(tài),所述更新會話狀態(tài)包括將會話狀態(tài)由在線轉(zhuǎn)換為離線,或維持在線狀態(tài)。本發(fā)明為用戶提供一種客戶端控制會話狀態(tài)的機(jī)制,以提升Web應(yīng)用程序的可用性。文檔編號H04L29/08GK101588393SQ200910157219公開日2009年11月25日申請日期2009年7月2日優(yōu)先權(quán)日2009年7月2日發(fā)明者李方寧申請人:杭州華三通信技術(shù)有限公司