亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

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

文檔序號(hào):11279390閱讀:571來(lái)源:國(guó)知局
一種客戶端退出方法及系統(tǒng)與流程

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



背景技術(shù):

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



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

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

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

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

s2、如果所述注銷原因?yàn)榭蛻舳酥鲃?dòng)發(fā)起或服務(wù)器中斷服務(wù),則執(zhí)行步驟s3,如果所述注銷原因?yàn)榭蛻舳诉B接異常,則啟動(dòng)重連機(jī)制,超過(guò)重連次數(shù)或預(yù)設(shè)重連時(shí)間之后執(zhí)行步驟s3;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

如果所述注銷原因?yàn)榭蛻舳酥鲃?dòng)發(fā)起或服務(wù)器中斷服務(wù),則關(guān)閉所述客戶端的連接服務(wù)對(duì)象,發(fā)送包括所述注銷原因和所述客戶端的連接id的第一注銷事件到所述連接服務(wù)器;

如果所述注銷原因?yàn)榭蛻舳诉B接異常,則啟動(dòng)重連機(jī)制,超過(guò)重連次數(shù)或預(yù)設(shè)重連時(shí)間之后關(guān)閉本地的連接服務(wù)對(duì)象,發(fā)送包括所述注銷原因和所述客戶端的連接id的第一注銷事件到所述連接服務(wù)器;

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

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

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

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

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

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

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

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

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

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

附圖說(shuō)明

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

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

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

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

具體實(shí)施方式

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

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

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

s2、如果注銷原因?yàn)榭蛻舳酥鲃?dòng)發(fā)起或服務(wù)器中斷服務(wù),則執(zhí)行步驟s3,如果注銷原因?yàn)榭蛻舳诉B接異常,則啟動(dòng)重連機(jī)制,超過(guò)重連次數(shù)或預(yù)設(shè)重連時(shí)間之后執(zhí)行步驟s3;

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

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

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

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

具體地,步驟s5包括:

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

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

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

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

具體地,步驟s3中,關(guān)閉客戶端的連接服務(wù)對(duì)象之前,還包括:

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

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

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

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

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

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

如果注銷原因?yàn)榭蛻舳酥鲃?dòng)發(fā)起或服務(wù)器中斷服務(wù),則關(guān)閉本地的連接服務(wù)對(duì)象,發(fā)送包括注銷原因和客戶端的連接id的第一注銷事件到連接服務(wù)器2;

如果注銷原因?yàn)榭蛻舳诉B接異常,則啟動(dòng)重連機(jī)制,超過(guò)重連次數(shù)或預(yù)設(shè)重連時(shí)間之后關(guān)閉本地的連接服務(wù)對(duì)象,發(fā)送包括注銷原因和客戶端的連接id的第一注銷事件到連接服務(wù)器2;

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

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

具體地,應(yīng)用程序服務(wù)器3具體用于:

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

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

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

具體地,客戶端1在關(guān)閉本地的連接服務(wù)對(duì)象之前,還用于:

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

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

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

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

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1