本發(fā)明涉及互聯(lián)網(wǎng)領域,特別涉及一種客戶端容器的登錄方法。
背景技術:
隨著互聯(lián)網(wǎng)技術的飛速發(fā)展,越來越多的應用客戶端出現(xiàn)在人們的生活中,用戶通過登錄這些應用客戶端從互聯(lián)網(wǎng)獲取服務。但是,現(xiàn)有的登錄方法并不能保證通信安全,也沒有提供客戶端升級、客戶端緩存、客戶端到服務器的連接服務,以及客戶端網(wǎng)絡重連機制等功能。
技術實現(xiàn)要素:
本發(fā)明提供了一種客戶端容器的登錄方法,解決了現(xiàn)有技術的技術問題。
本發(fā)明解決上述技術問題的技術方案如下:一種客戶端容器的登錄方法,包括:
s1、根據(jù)配置文件中的源目錄和目標目錄,將所述源目錄指向的運行環(huán)境庫中的動態(tài)庫文件拷貝到所述目標目錄中,以本地保存的服務器地址列表和加密通信文件為參數(shù),執(zhí)行當前客戶端的啟動類的實例化方法;
s2、所述啟動類完成實例化后,顯示啟動動畫;
s3、執(zhí)行更新檢測對象的實例化方法和初始化方法,判斷是否需要更新客戶端版本,如果需要更新則關閉所述啟動動畫,退出執(zhí)行,如果不需要更新則執(zhí)行所述啟動類的初始化方法和啟動方法,同時啟動所述當前客戶端的socket連接服務與服務器建立socket連接,并啟動客戶端斷開重連機制;
s4、所述啟動類完成啟動后,顯示登錄界面,從所述登錄界面上獲取用戶名和密碼進行登錄;
s5、登錄成功后,從所述服務器獲取用戶信息并保存在所述當前客戶端的緩存中。
本發(fā)明的有益效果是:本技術方案提供了基于客戶端架構的ui容器實現(xiàn)方法,保證了通信安全,實現(xiàn)了客戶端智能升級、客戶端緩存、客戶端到服務器的連接服務,客戶端網(wǎng)絡重連機制,用戶認證的一整套實現(xiàn)方法。提高了客戶端啟動的速度,優(yōu)化了客戶端的訪問機制,為客戶端設計提供了一個新的思路。
在上述技術方案的基礎上,本發(fā)明還可以做如下改進。
優(yōu)選地,步驟s3包括:
s31、執(zhí)行更新檢測對象的實例化方法,獲取當前應用程序的根目錄、更新配置文件和版本信息;
s32、執(zhí)行所述更新檢測對象的初始化方法,如果所述根目錄、所述更新配置文件和所述版本信息均不為空,則連接版本更新管理服務器,獲取最新版本信息;
s33、如果所述版本信息與所述最新版本信息不同,則生成并推送用于詢問用戶是否需要更新客戶端版本的消息,根據(jù)反饋信息判斷是否需要更新,如是則關閉所述啟動動畫,更新注冊表基項的值和本地程序文件,否則執(zhí)行所述啟動類的初始化方法和啟動方法。
優(yōu)選地,步驟s3中,執(zhí)行所述啟動類的初始化方法和啟動方法具體包括:
執(zhí)行所述啟動類的基類的初始化方法,獲取所述服務器地址列表,加載本地的所有音頻文件,以所述服務器地址列表為參數(shù),執(zhí)行所述基類的實例化方法和啟動方法。
優(yōu)選地,執(zhí)行所述基類的初始化方法具體包括:
生成新的日志文件,所述日志文件包括:正常日志輸出文件和錯誤日志輸出文件,以客戶端類型為參數(shù),執(zhí)行界面管理器類的初始化方法,將所述客戶端類型設置為界面管理器的客戶端類型,根據(jù)所述界面管理器的客戶端類型創(chuàng)建窗體,設置所述窗體的標題、最小寬度和最小高度。
優(yōu)選地,執(zhí)行所述基類的實例化方法具體包括:
以所述服務器地址列表、所述加密通信文件和本地保存的界面顯示模式為參數(shù),執(zhí)行所述基類的實例化方法,將實例化得到的基類對象添加到客戶端緩存對象列表中,對所述服務器地址列表中的服務器名稱進行處理,加載所述加密通信文件獲取加密密鑰,將所述加密密鑰設置為當前應用程序的加密密鑰,啟動所述界面管理器,創(chuàng)建資源管理器,創(chuàng)建并初始化線程池。
優(yōu)選地,執(zhí)行所述基類的啟動方法具體包括:
將客戶端對象保存在所述客戶端緩存對象列表中,注冊空閑超時監(jiān)控線程,設置客戶端socket連接監(jiān)控器,注冊服務器強制中斷會話的事件和客戶端授權限制的事件,訂閱彈窗事件和通知事件,設置socket連接監(jiān)聽器,獲取連接屬性值列表,根據(jù)所述連接屬性值列表、socket服務類型、所述服務器地址列表和消息處理器創(chuàng)建socket連接服務。
優(yōu)選地,步驟s4具體包括:
所述啟動類啟動完成后,獲取所述socket連接服務的啟用狀態(tài),發(fā)布客戶端嘗試登錄的事件,顯示登錄界面,如果所述socket連接服務為已啟用狀態(tài),則判斷當前連接狀態(tài)是否為已連接狀態(tài),如果為未連接狀態(tài),則嘗試與所述服務器建立socket連接,如果連接超時則在所述登錄界面上顯示第二錯誤提示信息,并發(fā)布登錄結束事件,如果為已連接狀態(tài)則執(zhí)行所述基類的登錄方法。
優(yōu)選地,執(zhí)行所述基類的登錄方法具體包括:
從所述登錄界面上獲取用戶名和密碼,顯示登錄進度控制條,發(fā)送包括連接id、所述客戶端類型、用戶加密信息、客戶端ip地址、mac地址、當前客戶端版本、連接服務器的域名、端口和注冊參數(shù),以及是否殺死會話的登錄的連接消息到所述服務器,如果登錄成功,則獲取登錄的消息結果,并將所述消息結果保存到所述客戶端的緩存中的上下文會話對象中,如果登錄失敗,則在所述登錄界面上顯示第三錯誤提示信息。
優(yōu)選地,步驟s5中,啟動客戶端斷開重連機制的方法具體包括:
a1、將所述基類作為用于監(jiān)聽socket連接建立事件和socket連接斷開事件的監(jiān)聽器;
a2、當監(jiān)聽到所述socket連接斷開事件時,發(fā)布斷網(wǎng)事件,連接斷開時將客戶端應用程序對象的連接對象和客戶端請求轉發(fā)器的連接對象均設置為空,將連接標志位設置為假,如果所述配置文件中將斷線重連設置為真則啟動重連線程;
a3、當監(jiān)聽到所述socket連接建立事件時,將所述客戶端應用程序對象的連接對象和所述客戶端請求轉發(fā)器的連接對象均設置為新的socket連接對象,將所述連接標志位設置為真,停止所述斷網(wǎng)計時器,發(fā)布網(wǎng)絡連接成功事件。
優(yōu)選地,步驟a2中,啟動重連線程的方法具體包括:
判斷所述連接標志位為真或假,如果所述連接標志位為假,則所述重連線程處于等待狀態(tài),如果所述連接標志位為真,則在預設重連時間內(nèi),每隔預設時間進行重新連接,以所述連接id、所述客戶端類型、所述連接服務器的域名、端口號和所述會話上下文對象,以及注冊參數(shù)為參數(shù)進行注冊重連,與所述服務器同步數(shù)據(jù),發(fā)布客戶端連接成功事件。
附圖說明
圖1為本發(fā)明實施例提供的一種客戶端容器的登錄方法的流程示意圖;
圖2為本發(fā)明另一實施例提供的一種客戶端容器的登錄方法的流程示意圖;
圖3為本發(fā)明另一實施例提供的一種客戶端容器的登錄方法的流程示意圖。
具體實施方式
以下結合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如圖1所示,一種客戶端容器的登錄方法,包括:
s1、根據(jù)配置文件中的源目錄和目標目錄,將源目錄指向的運行環(huán)境庫中的動態(tài)庫文件拷貝到目標目錄中,以本地保存的服務器地址列表和加密通信文件為參數(shù),執(zhí)行當前客戶端的啟動類的實例化方法;
s2、啟動類完成實例化后,顯示啟動動畫;
s3、執(zhí)行更新檢測對象的實例化方法和初始化方法,判斷是否需要更新客戶端版本,如果需要更新則關閉啟動動畫,退出執(zhí)行,如果不需要更新則執(zhí)行啟動類的初始化方法和啟動方法,同時啟動當前客戶端的socket連接服務與服務器建立socket連接,并啟動客戶端斷開重連機制;
s4、啟動類完成啟動后,顯示登錄界面,從登錄界面上獲取用戶名和密碼進行登錄;
s5、登錄成功后,從服務器獲取用戶信息并保存在當前客戶端的緩存中。
在配置文件中設置源目錄和目標目錄,源目錄指向運行環(huán)境庫中的動態(tài)庫文件,比如dll文件,將dll文件拷貝到目標目錄中,實例化客戶端啟動類。啟動類實例化之后,顯示客戶端的啟動動畫,提示用戶客戶端正在啟動中。在啟動之前,需要先判斷當前的客戶端版本是否為最新版本,如果不是,則提示用戶更新,如果用戶選擇更新,則直接退出啟動進行客戶端版本更新,如果用戶選擇不更新,則繼續(xù)啟動,啟動啟動類的同時啟動客戶端socket連接服務,與服務器建立socket連接,并啟動客戶端斷開重連機制。
具體地,如圖2所示,步驟s3包括:
s31、執(zhí)行更新檢測對象的實例化方法,獲取當前應用程序的根目錄、更新配置文件和版本信息;
s32、執(zhí)行更新檢測對象的初始化方法,如果根目錄、更新配置文件和版本信息均不為空,則連接版本更新管理服務器,獲取最新版本信息;
s33、如果版本信息與最新版本信息不同,則生成并推送用于詢問用戶是否需要更新客戶端版本的消息,根據(jù)反饋信息判斷是否需要更新,如是則關閉啟動動畫,更新注冊表基項的值和本地程序文件,否則執(zhí)行啟動類的初始化方法和啟動方法。
具體地,首先,實例化更新檢測對象,獲取當前應用程序的根目錄、更新配置文件和版本信息,如果三者均不為空,則判斷當前版本是否為最新版本,如果不是,則彈出對話框,詢問用戶是否要更新,如果用戶點擊“是”按鈕,則關閉啟動動畫,進行更新,如果用戶點擊“否”按鈕,則繼續(xù)啟動啟動類。當然,如果三者中任一項為空,則拋出異常,彈出錯誤提示框。
具體地,步驟s3中,執(zhí)行啟動類的初始化方法和啟動方法具體包括:
執(zhí)行啟動類的基類的初始化方法,獲取服務器地址列表,加載本地的所有音頻文件,以服務器地址列表為參數(shù),執(zhí)行基類的實例化方法和啟動方法。
具體地,執(zhí)行基類的初始化方法具體包括:
生成新的日志文件,日志文件包括:正常日志輸出文件和錯誤日志輸出文件,以客戶端類型為參數(shù),執(zhí)行界面管理器類的初始化方法,將客戶端類型設置為界面管理器的客戶端類型,根據(jù)界面管理器的客戶端類型創(chuàng)建窗體,設置窗體的標題、最小寬度和最小高度。
具體地,執(zhí)行基類的實例化方法具體包括:
以服務器地址列表、加密通信文件和本地保存的界面顯示模式為參數(shù),執(zhí)行基類的實例化方法,將實例化得到的基類對象添加到客戶端緩存對象列表中,對服務器地址列表中的服務器名稱進行處理,加載加密通信文件獲取加密密鑰,將加密密鑰設置為當前應用程序的加密密鑰,啟動界面管理器,創(chuàng)建資源管理器,創(chuàng)建并初始化線程池。
具體地,執(zhí)行基類的啟動方法具體包括:
將客戶端對象保存在客戶端緩存對象列表中,注冊空閑超時監(jiān)控線程,設置客戶端socket連接監(jiān)控器,注冊服務器強制中斷會話的事件和客戶端授權限制的事件,訂閱彈窗事件和通知事件,設置socket連接監(jiān)聽器,獲取連接屬性值列表,根據(jù)連接屬性值列表、socket服務類型、服務器地址列表和消息處理器創(chuàng)建socket連接服務。
具體地,步驟s4具體包括:
啟動類啟動完成后,獲取socket連接服務的啟用狀態(tài),發(fā)布客戶端嘗試登錄的事件,顯示登錄界面,如果socket連接服務為已啟用狀態(tài),則判斷當前連接狀態(tài)是否為已連接狀態(tài),如果為未連接狀態(tài),則嘗試與服務器建立socket連接,如果連接超時則在登錄界面上顯示第二錯誤提示信息,并發(fā)布登錄結束事件,如果為已連接狀態(tài)則執(zhí)行基類的登錄方法。
具體地,執(zhí)行基類的登錄方法具體包括:
從登錄界面上獲取用戶名和密碼,顯示登錄進度控制條,發(fā)送包括連接id、客戶端類型、用戶加密信息、客戶端ip地址、mac地址、當前客戶端版本、連接服務器的域名、端口和注冊參數(shù),以及是否殺死會話的登錄的連接消息到服務器,如果登錄成功,則獲取登錄的消息結果,并將消息結果保存到客戶端的緩存中的上下文會話對象中,如果登錄失敗,則在登錄界面上顯示第二錯誤提示信息。
具體地,如圖3所示,步驟s3中,啟動客戶端斷開重連機制的方法具體包括:
a1、將基類作為用于監(jiān)聽socket連接建立事件和socket連接斷開事件的監(jiān)聽器;
a2、當監(jiān)聽到socket連接斷開事件時,發(fā)布斷網(wǎng)事件,連接斷開時將客戶端應用程序對象的連接對象和客戶端請求轉發(fā)器的連接對象均設置為空,將連接標志位設置為假,如果配置文件中將斷線重連設置為真則啟動重連線程;
a3、當監(jiān)聽到socket連接建立事件時,將客戶端應用程序對象的連接對象和客戶端請求轉發(fā)器的連接對象均設置為新的socket連接對象,將連接標志位設置為真,停止斷網(wǎng)計時器,發(fā)布網(wǎng)絡連接成功事件。
應理解,連接標志位的真和假分別代表了已連接狀態(tài)和未連接狀態(tài)。如果配置文件中有設置斷線重連為真,也就是,只要監(jiān)聽到斷線,就直接啟動重連線程。
具體地,步驟a2中,啟動重連線程的方法具體包括:
判斷連接標志位為真或假,如果連接標志位為假,則重連線程處于等待狀態(tài),如果連接標志位為真,則在預設重連時間內(nèi),每隔預設時間進行重新連接,以連接id、客戶端類型、連接服務器的域名、端口號和會話上下文對象,以及注冊參數(shù)為參數(shù)進行注冊重連,與服務器同步數(shù)據(jù),發(fā)布客戶端連接成功事件。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。