亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種客戶端退出方法及系統(tǒng)與流程

文檔序號:11279390閱讀:591來源:國知局
一種客戶端退出方法及系統(tǒng)與流程

本發(fā)明涉及互聯(lián)網(wǎng)領域,特別涉及一種客戶端退出方法及系統(tǒng)。



背景技術(shù):

隨著互聯(lián)網(wǎng)技術(shù)的飛速發(fā)展,越來越多的應用客戶端出現(xiàn)在人們的生活中,用戶通過登錄這些應用客戶端從互聯(lián)網(wǎng)獲取服務。在客戶端與服務器通信過程中,可能會因為各種原因而導致通信中斷,比如,客戶端主動注銷,服務器中斷服務或者連接異常等,但是,客戶端的退出機制并不完善,還不能很好地解決不同注銷原因?qū)е碌牟煌瑔栴}。



技術(shù)實現(xiàn)要素:

本發(fā)明提供了一種客戶端退出方法及系統(tǒng),解決了現(xiàn)有技術(shù)中客戶端的退出方法并不能全面解決各種注銷原因的技術(shù)問題。

本發(fā)明解決上述技術(shù)問題的技術(shù)方案如下:一種客戶端退出方法,包括:

s1、根據(jù)日志判斷客戶端的注銷原因,所述注銷原因包括:客戶端主動發(fā)起、服務器中斷服務和客戶端連接異常;

s2、如果所述注銷原因為客戶端主動發(fā)起或服務器中斷服務,則執(zhí)行步驟s3,如果所述注銷原因為客戶端連接異常,則啟動重連機制,超過重連次數(shù)或預設重連時間之后執(zhí)行步驟s3;

s3、關閉所述客戶端的連接服務對象,發(fā)送包括所述注銷原因和所述客戶端的連接id的第一注銷事件到連接服務器;

s4、所述連接服務器接收到所述第一注銷事件后,從會話緩存中獲取所述連接id對應的會話上下文信息,所述會話上下文信息包括用戶id,從所述會話緩存中獲取所述用戶id對應的第一會話對象,通過所述連接服務器的連接注冊子服務對象對所述第一會話對象進行注銷,注銷完成后發(fā)送包括所述注銷原因、所述會話上下文信息和所述連接服務器的名稱的第二注銷事件到應用程序服務器;

s5、所述應用程序服務器接收到所述第二注銷事件后,對數(shù)據(jù)庫中所述用戶id對應的第二會話對象進行注銷。

本發(fā)明的有益效果是:本技術(shù)方案針對客戶端的不同的注銷原因采取不同的退出方式,對會話緩存和數(shù)據(jù)庫中的會話分別進行注銷,釋放空間和資源,更加全面和可靠。

在上述技術(shù)方案的基礎上,本發(fā)明還可以做如下改進。

優(yōu)選地,步驟s5包括:

s51、鎖定所述用戶id,判斷活動會話列表中是否存在所述用戶id對應的第二會話對象,如是,則返回錯誤提示信息,否則執(zhí)行步驟s52;

s52、將所述注銷原因作為所述第二會話對象的注銷原因,將當前系統(tǒng)時間作為所述第二會話對象的注銷時間,將所述第二會話對象從所述活動會話列表中刪除;

s53、根據(jù)所述第二會話對象創(chuàng)建新的第三會話對象并放入丟棄會話列表,根據(jù)所述丟棄會話列表中的所有會話對象更新數(shù)據(jù)庫。

優(yōu)選地,步驟s3中,關閉所述客戶端的連接服務對象之前,還包括:

a1、生成并推送用于詢問用戶是否保存本地正在編輯的信息的客戶端事件;

a2、接收所述用戶輸入的對所述客戶端事件的反饋信息;

a3、根據(jù)所述反饋信息保存或不保存所述本地正在編輯的信息,如果保存,則將所述本地正在編輯的信息以臨時文件的形式保存在所述客戶端,當所述客戶端再次登錄成功時恢復所述本地正在編輯的信息。

一種客戶端退出系統(tǒng),包括:客戶端、連接服務器和應用程序服務器,

所述客戶端用于根據(jù)日志判斷注銷原因,所述注銷原因包括:客戶端主動發(fā)起、服務器中斷服務和客戶端連接異常;

如果所述注銷原因為客戶端主動發(fā)起或服務器中斷服務,則關閉所述客戶端的連接服務對象,發(fā)送包括所述注銷原因和所述客戶端的連接id的第一注銷事件到所述連接服務器;

如果所述注銷原因為客戶端連接異常,則啟動重連機制,超過重連次數(shù)或預設重連時間之后關閉本地的連接服務對象,發(fā)送包括所述注銷原因和所述客戶端的連接id的第一注銷事件到所述連接服務器;

所述連接服務器用于接收所述第一注銷事件,從會話緩存中獲取所述連接id對應的會話上下文信息,所述會話上下文信息包括用戶id,從所述會話緩存中獲取所述用戶id對應的第一會話對象,通過所述連接服務器的連接注冊子服務對象對所述第一會話對象進行注銷,注銷完成后發(fā)送包括所述注銷原因、所述會話上下文信息和所述連接服務器的名稱的第二注銷事件到所述應用程序服務器;

所述應用程序服務器用于接收所述第二注銷事件,對數(shù)據(jù)庫中所述用戶id對應的第二會話對象進行注銷。

優(yōu)選地,所述應用程序服務器具體用于:

鎖定所述用戶id,判斷活動會話列表中是否存在所述用戶id對應的第二會話對象,如是,則返回錯誤提示信息,否則執(zhí)行步驟s52;

將所述注銷原因作為所述第二會話對象的注銷原因,將當前系統(tǒng)時間作為所述第二會話對象的注銷時間,將所述第二會話對象從所述活動會話列表中刪除;

根據(jù)所述第二會話對象創(chuàng)建新的第三會話對象并放入丟棄會話列表,根據(jù)所述丟棄會話列表中的所有會話對象更新數(shù)據(jù)庫。

優(yōu)選地,所述客戶端在關閉本地的連接服務對象之前,還用于:

生成并推送用于詢問用戶是否保存本地正在編輯的信息的客戶端事件;

接收所述用戶輸入的對所述客戶端事件的反饋信息;

根據(jù)所述反饋信息保存或不保存所述本地正在編輯的信息,如果保存,則將所述本地正在編輯的信息以臨時文件的形式保存在本地,當再次登錄成功時恢復所述本地正在編輯的信息。

附圖說明

圖1為本發(fā)明實施例提供的一種客戶端退出方法的流程示意圖;

圖2為本發(fā)明另一實施例提供的一種客戶端退出方法的流程示意圖;

圖3為本發(fā)明另一實施例提供的一種客戶端退出方法的流程示意圖;

圖4為本發(fā)明另一實施例提供的一種客戶端退出系統(tǒng)的結(jié)構(gòu)示意圖。

具體實施方式

以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。

如圖1所示,一種客戶端退出方法,包括:

s1、根據(jù)日志判斷客戶端的注銷原因,注銷原因包括:客戶端主動發(fā)起、服務器中斷服務和客戶端連接異常;

s2、如果注銷原因為客戶端主動發(fā)起或服務器中斷服務,則執(zhí)行步驟s3,如果注銷原因為客戶端連接異常,則啟動重連機制,超過重連次數(shù)或預設重連時間之后執(zhí)行步驟s3;

s3、關閉客戶端的連接服務對象,發(fā)送包括注銷原因和客戶端的連接id的第一注銷事件到連接服務器;

s4、連接服務器接收到第一注銷事件后,從會話緩存中獲取連接id對應的會話上下文信息,會話上下文信息包括用戶id,從會話緩存中獲取用戶id對應的第一會話對象,通過連接服務器的連接注冊子服務對象對第一會話對象進行注銷,注銷完成后發(fā)送包括注銷原因、會話上下文信息和連接服務器的名稱的第二注銷事件到應用程序服務器;

s5、應用程序服務器接收到第二注銷事件后,對數(shù)據(jù)庫中用戶id對應的第二會話對象進行注銷。

應理解,首先判斷客戶端的注銷原因,根據(jù)不同注銷原因采取不同的退出方式,其中,如果是因為連接中斷而導致的客戶端注銷,則需要進行重連,如果在預設的重連次數(shù)內(nèi)或預設的重連時間內(nèi)沒有連接成功,則關閉客戶端的連接服務對象,向連接服務器發(fā)送第一注銷事件,連接服務器接收到后進行解析,得到注銷原因和客戶端的連接id,根據(jù)連接id獲取會話上下文信息,會話上下文信息中包括用戶id,通過連接注冊子服務對象對會話緩存中的用戶id對應的第一會話對象進行注銷,連接服務器的注銷操作完成后,生成第二注銷事件,發(fā)送給應用程序服務器,讓應用程序服務器對數(shù)據(jù)庫中的用戶id對應的第二會話對象進行注銷。其中,會話上下文信息用于記錄用戶的會話信息和登錄信息等。

具體地,步驟s5包括:

s51、鎖定用戶id,判斷活動會話列表中是否存在用戶id對應的第二會話對象,如是,則返回錯誤提示信息,否則執(zhí)行步驟s52;

s52、將注銷原因作為第二會話對象的注銷原因,將當前系統(tǒng)時間作為第二會話對象的注銷時間,將第二會話對象從活動會話列表中刪除;

s53、根據(jù)第二會話對象創(chuàng)建新的第三會話對象并放入丟棄會話列表,根據(jù)丟棄會話列表中的所有會話對象更新數(shù)據(jù)庫。

應理解,在應用程序服務器接收并解析第二注銷事件,得到注銷原因、會話上下文信息和連接服務器的名稱。根據(jù)會話上下文信息的用戶id獲取用戶鎖,使得當前線程鎖定該用戶鎖,從活動會話列表中獲取對應用戶id的第二會話對象,如果獲取不到或者獲取到的第二會話對象為空,則返回異常信息,直接退出,如果獲取到正常的第二會話對象,則需要設置第二會話對象的注銷原因和注銷時間,然后將其從活動會話列表中刪除,創(chuàng)建一個新的第三會話對象,并放入丟棄會話列表中,最后,根據(jù)丟棄會話列表中的所有會話對象更新數(shù)據(jù)庫中對應的會話對象,如果是標識要刪除的會話對象則刪除數(shù)據(jù)庫中對應的會話對象。

具體地,步驟s3中,關閉客戶端的連接服務對象之前,還包括:

a1、生成并推送用于詢問用戶是否保存本地正在編輯的信息的客戶端事件;

a2、接收用戶輸入的對客戶端事件的反饋信息;

a3、根據(jù)反饋信息保存或不保存本地正在編輯的信息,如果保存,則將本地正在編輯的信息以臨時文件的形式保存在客戶端,當客戶端再次登錄成功時恢復本地正在編輯的信息。

應理解,在客戶端關閉連接服務對象之前,需要先詢問用戶是否需要保持當前正在編輯的信息,如果用戶選擇保存則將該信息保存在本地客戶端的臨時文件中,如果用戶選擇放棄則繼續(xù)后續(xù)步驟。

如圖2所示,一種客戶端退出系統(tǒng),包括:客戶端1、連接服務器2和應用程序服務器3,

客戶端1用于根據(jù)日志判斷注銷原因,注銷原因包括:客戶端主動發(fā)起、服務器中斷服務和客戶端連接異常;

如果注銷原因為客戶端主動發(fā)起或服務器中斷服務,則關閉本地的連接服務對象,發(fā)送包括注銷原因和客戶端的連接id的第一注銷事件到連接服務器2;

如果注銷原因為客戶端連接異常,則啟動重連機制,超過重連次數(shù)或預設重連時間之后關閉本地的連接服務對象,發(fā)送包括注銷原因和客戶端的連接id的第一注銷事件到連接服務器2;

連接服務器2用于接收第一注銷事件,從會話緩存中獲取連接id對應的會話上下文信息,會話上下文信息包括用戶id,從會話緩存中獲取用戶id對應的第一會話對象,通過連接服務器的連接注冊子服務對象對第一會話對象進行注銷,注銷完成后發(fā)送包括注銷原因、會話上下文信息和連接服務器的名稱的第二注銷事件到應用程序服務器;

應用程序服務器3用于接收第二注銷事件,對數(shù)據(jù)庫中用戶id對應的第二會話對象進行注銷。

具體地,應用程序服務器3具體用于:

鎖定用戶id,判斷活動會話列表中是否存在用戶id對應的第二會話對象,如是,則返回錯誤提示信息,否則執(zhí)行步驟s52;

將注銷原因作為第二會話對象的注銷原因,將當前系統(tǒng)時間作為第二會話對象的注銷時間,將第二會話對象從活動會話列表中刪除;

根據(jù)第二會話對象創(chuàng)建新的第三會話對象并放入丟棄會話列表,根據(jù)丟棄會話列表中的所有會話對象更新數(shù)據(jù)庫。

具體地,客戶端1在關閉本地的連接服務對象之前,還用于:

生成并推送用于詢問用戶是否保存本地正在編輯的信息的客戶端事件;

接收用戶輸入的對客戶端事件的反饋信息;

根據(jù)反饋信息保存或不保存本地正在編輯的信息,如果保存,則將本地正在編輯的信息以臨時文件的形式保存在本地,當再次登錄成功時恢復本地正在編輯的信息。

以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1