一種會話可保持的服務(wù)端及其會話處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及網(wǎng)絡(luò)系統(tǒng)領(lǐng)域,特別涉及一種會話可保持的服務(wù)端及其會話處理方法。
【背景技術(shù)】
[0002]命令行是一種應(yīng)用非常廣泛的系統(tǒng)管理方式,客戶端通過Telnet (TCP/IP終端仿真協(xié)議)或者SSH (安全外殼協(xié)議)可以很方便地登陸到服務(wù)端系統(tǒng)。命令行非常普遍地應(yīng)用于各種操作系統(tǒng)中,包括Windows、Linux和Max OS等。
[0003]由于命令行的數(shù)據(jù)依賴于網(wǎng)絡(luò)傳輸,網(wǎng)絡(luò)質(zhì)量的好壞直接影響著命令行的穩(wěn)定度,不管是Telnet還是SSH,都是基于TCP協(xié)議的,若網(wǎng)絡(luò)中斷時(shí)間過長,服務(wù)端程序會終止當(dāng)前會話,從而使得用戶的數(shù)據(jù)丟失。
[0004]還有一個情況就是用戶可能需要保存自己的會話,等到下次登錄的時(shí)候,繼續(xù)使用上次會話的環(huán)境。但是現(xiàn)有技術(shù)中的做法都是用戶關(guān)閉客戶端后,服務(wù)端就關(guān)閉了會話,因而無法保存用戶的會話狀態(tài)。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種會話可保持的服務(wù)端及其會話處理方法,在命令行服務(wù)端增加會話保持的功能,用于解決傳統(tǒng)的命令行容易丟失會話狀態(tài)的問題。
[0006]為了達(dá)到上述目的,本發(fā)明的一個技術(shù)方案是提供一種服務(wù)端的會話處理方法,服務(wù)端將其與客戶端的會話保存,并在會話保存列表中記錄該客戶端的用戶標(biāo)識信息;
接受所述客戶端下一次連接的請求時(shí),所述服務(wù)端根據(jù)該客戶端的用戶標(biāo)識信息查詢會話保存列表,并激活所保存的會話來與客戶端進(jìn)行通信。
[0007]優(yōu)選地,所述服務(wù)端接受客戶端的連接請求,根據(jù)該客戶端的用戶標(biāo)識信息,查詢會話保存列表,判斷是否有與該客戶端對應(yīng)的會話被保存:
如果有會話被保存,則激活所保存的會話來與客戶端進(jìn)行通信;
如果沒有會話被保存,則新建會話來與客戶端進(jìn)行通信。
[0008]優(yōu)選地,所述用戶標(biāo)識信息是客戶端的主機(jī)IP地址。
[0009]優(yōu)選地,所述服務(wù)端設(shè)有第一配置文件,用于配置會話的生存時(shí)間的預(yù)設(shè)值;所述服務(wù)端對其與客戶端會話的生存時(shí)間進(jìn)行計(jì)時(shí),若生存時(shí)間超出預(yù)設(shè)值,則終止會話的進(jìn)程。
[0010]優(yōu)選地,所述服務(wù)端在其與客戶端會話中斷時(shí)自動保存會話;
或者,所述服務(wù)端根據(jù)客戶端發(fā)送的對會話進(jìn)行保存的請求來保存會話。
[0011]優(yōu)選地,所述服務(wù)端設(shè)有第二配置文件,用于配置是否開啟會話保存功能的設(shè)定值;所述服務(wù)端讀取該設(shè)定值判斷會話保存功能開啟時(shí),才保存其與客戶端的會話。在不同的示例中,第一配置文件和第二配置文件是同一個配置文件,會話的生存時(shí)間的預(yù)設(shè)值和是否開啟會話保存功能的設(shè)定值是其中分別配置的兩項(xiàng)內(nèi)容;或者,第一配置文件和第二配置文件是兩個不同的配置文件,分別對這兩項(xiàng)內(nèi)容中的一項(xiàng)內(nèi)容進(jìn)行配置。
[0012]優(yōu)選地,所述服務(wù)端設(shè)有會話保存文件,記錄所保存會話的會話列表,其中包含所保存對話的用戶標(biāo)識信息、序號和離開時(shí)間;所述離開時(shí)間是指服務(wù)端與客戶端會話中斷的時(shí)間,或者是指客戶端請求服務(wù)端保存會話的時(shí)間。
[0013]本發(fā)明的另一個技術(shù)方案是提供一種會話可保持的服務(wù)端,所述服務(wù)端包含保存模塊及判斷模塊;
所述保存模塊在服務(wù)端增加并維護(hù)一個會話保存文件,來記錄會話保存列表;所述會話保存列表中包含被保存的服務(wù)端與客戶端的會話,以及被保存會話的客戶端的用戶標(biāo)識信息;
所述判斷模塊在接受客戶端的連接請求時(shí)在會話列表中進(jìn)行查詢,并對發(fā)送連接請求的客戶端的標(biāo)識信息與會話保存列表中被保存會話的客戶端的用戶標(biāo)識信息是否匹配進(jìn)行比對;
所述服務(wù)端,根據(jù)匹配成功的用戶標(biāo)識信息激活所保存的會話來與客戶端通信,或者根據(jù)匹配不成功的結(jié)果新建會話來與客戶端通信。
[0014]優(yōu)選地,所述服務(wù)端還包含還配置模塊,其在服務(wù)端設(shè)置并維護(hù)配置文件,所述配置文件對會話的生存時(shí)間的設(shè)定值,以及是否開啟會話保存功能的設(shè)定值進(jìn)行記錄。
[0015]優(yōu)選地,所述服務(wù)端還包含計(jì)時(shí)模塊,其對服務(wù)端與客戶端會話的生存時(shí)間進(jìn)行計(jì)時(shí),并使判斷模塊對會話的生存時(shí)間是否超出生存時(shí)間的預(yù)設(shè)值進(jìn)行判斷;所述服務(wù)端根據(jù)生存時(shí)間超時(shí)的通知,終止會話的進(jìn)程。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明提供了一種會話可保持的服務(wù)端及其會話處理方法,其優(yōu)點(diǎn)在于:本發(fā)明在命令行服務(wù)端增加會話保持的功能,在網(wǎng)絡(luò)狀態(tài)不好的情況下,可以保證用戶會話的數(shù)據(jù)不會丟失。并且,用戶可以根據(jù)需要選擇對自己的會話狀態(tài)進(jìn)行保存,以便下一次通信時(shí)使用。本發(fā)明有效解決了傳統(tǒng)的命令行容易丟失會話狀態(tài)的問題。
【附圖說明】
[0017]圖1是本發(fā)明所述服務(wù)端接收客戶端請求后的處理流程示意圖;
圖2是本發(fā)明所述服務(wù)端的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0018]本發(fā)明提供一種會話可保持的命令行機(jī)制,對服務(wù)端的程序進(jìn)行改進(jìn),通過配置服務(wù)端,增加服務(wù)端可以保持會話的功能;用戶可以設(shè)置開啟該功能,也可以選擇關(guān)閉該功倉泛。
[0019]所述服務(wù)端,通過相應(yīng)的程序,根據(jù)用戶的標(biāo)識信息(例如是主機(jī)的IP地址)來保存會話的狀態(tài);可以是在網(wǎng)絡(luò)中斷使客戶端與服務(wù)端之間會話中斷時(shí)由服務(wù)端自動保存會話,也可以是由客戶端主動請求服務(wù)端對會話進(jìn)行保存。
[0020]當(dāng)用戶通過客戶端向服務(wù)端請求新的會話連接時(shí),服務(wù)端將從保存的會話列表中,查看是否有與該用戶標(biāo)識信息相對應(yīng)的會話被保存,如果有,則激活該會話,如果沒有,則新建會話。
[0021]用戶通過客戶端請求一個命令行會話(sess1n)時(shí),服務(wù)端的交互處理流程圖如圖1所示:
51.服務(wù)端接受客戶端請求;
52.服務(wù)端根據(jù)獲取到的客戶端的IP地址等標(biāo)識信息,在保存的會話列表中進(jìn)行查詢,來判斷原先是否有與該客戶端對應(yīng)的會話被保存;
53.若原先沒有會話被保存,則服務(wù)端新建會話;
54.若原先有會話保存的,則激活保存的會話;
55.服務(wù)段使用步驟S3或步驟S4中所獲得的會話狀態(tài)與客戶端進(jìn)行通信。
[0022]除此之外,服務(wù)端的會話進(jìn)程,應(yīng)該要定時(shí)檢查本會話進(jìn)程的生存時(shí)間是否已經(jīng)超時(shí),若超時(shí),則應(yīng)該及時(shí)終止會話進(jìn)程。
[0023]如圖2所示服務(wù)端的一個具體示例中,除了滿足該服務(wù)器原有功能的相應(yīng)模塊以夕卜,還包含有配置模塊1,保存模塊2,判斷模塊3。
[0024]所述配置模塊1,能夠在服務(wù)端增加并維護(hù)一個配置文件sessicon.cfg。一個示例的配置文件,其格式為:
Sess1n_Save_EnabIe (會話保存使能):On/Off,其中On表示開啟會話保存功能,