




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、48山東科技大學(xué) 王昌帥 詳細(xì)設(shè)計(jì)說(shuō)明書(shū)1、 引言: 1、1編寫(xiě)目的: 在前一階段(概要設(shè)計(jì)說(shuō)明書(shū))中,已解決了實(shí)現(xiàn)該系統(tǒng)需求的程序模塊設(shè)計(jì)問(wèn)題。包括如何把該系統(tǒng)劃分成若干個(gè)模塊、決定各個(gè)模塊之間的接口、模塊之間傳遞的信息,以及數(shù)據(jù)結(jié)構(gòu)、模塊結(jié)構(gòu)的設(shè)計(jì)等。在以下的詳細(xì)設(shè)計(jì)報(bào)告中將對(duì)在本階段中對(duì)系統(tǒng)所做的所有詳細(xì)設(shè)計(jì)進(jìn)行說(shuō)明。在本階段中,確定應(yīng)該如何具體地實(shí)現(xiàn)所要求的系統(tǒng),從而在編碼階段可以把這個(gè)描述直接翻譯成用具體的 程序語(yǔ)言書(shū)寫(xiě)的程序。主要的工作有:根據(jù)在需求分析說(shuō)明書(shū)中所描述的數(shù)據(jù)、功能、運(yùn)行、性能需求,并依照概要設(shè)計(jì)說(shuō)明書(shū)所確定的處理流程、總體結(jié)構(gòu)和模塊外部設(shè)計(jì),設(shè)計(jì)軟件系統(tǒng)的結(jié)構(gòu)設(shè)計(jì)、
2、逐個(gè)模塊的程序描述(包括各模塊的功能、性能、輸入、輸出、算法、程序邏輯、接口等等)在以下的各個(gè)階段中,用戶(hù)操作手冊(cè)將與本階段的工作緊密結(jié)合,努力作到 讓用戶(hù)易懂易學(xué)。測(cè)試報(bào)告和維護(hù)報(bào)告也將參考本說(shuō)明書(shū),檢驗(yàn)本系統(tǒng)的各項(xiàng)性能指標(biāo),及時(shí)發(fā)現(xiàn)紕漏及時(shí)修補(bǔ),一定要把功能強(qiáng)大、穩(wěn)定可靠、便于維護(hù)的機(jī)票預(yù)定系統(tǒng)交到用戶(hù)手中。 1、2項(xiàng)目背景:在本即時(shí)聊天工具項(xiàng)目的前一階段,也就是需求分析階段,已經(jīng)將系統(tǒng)用戶(hù)對(duì)本系統(tǒng)的需求做了詳細(xì)的闡述,這些用戶(hù)需求已經(jīng)在上一階段中對(duì)不同用戶(hù)所提出的不同功能,實(shí)現(xiàn)的各種效果做了調(diào)研工作,并在需求規(guī)格說(shuō)明書(shū)中得到詳盡得敘述及闡明。本 飛Q即時(shí)聊天系統(tǒng)項(xiàng)目主要由兩部分形成:1、
3、客戶(hù)端;2、數(shù)據(jù)庫(kù)服務(wù)器端; 1、3文中特殊的定義和縮寫(xiě): 131定義SQL SERVER: 系統(tǒng)服務(wù)器所使用的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)。SQL: 一種用于訪問(wèn)查詢(xún)數(shù)據(jù)庫(kù)的語(yǔ)言事務(wù)流:數(shù)據(jù)進(jìn)入模塊后可能有多種路徑進(jìn)行處理。主鍵:數(shù)據(jù)庫(kù)表中的關(guān)鍵域。值互不相同。外部主鍵:數(shù)據(jù)庫(kù)表中與其他表主鍵關(guān)聯(lián)的域。ROLLBACK: 數(shù)據(jù)庫(kù)的錯(cuò)誤恢復(fù)機(jī)制。 132 縮寫(xiě)系統(tǒng):若未特別指出,統(tǒng)指本機(jī)票預(yù)定系統(tǒng)。SQL: Structured Query Language(結(jié)構(gòu)化查詢(xún)語(yǔ)言)。ATM: Asynchronous Transfer Mode (異步傳輸模式)。 1、4參考資料:1 以下列出在概要設(shè)
4、計(jì)過(guò)程中所使用到的有關(guān)資料: 2 需求規(guī)格說(shuō)明書(shū) 飛Q軟件開(kāi)發(fā)小組3 概要設(shè)計(jì)說(shuō)明書(shū) 飛Q軟件開(kāi)發(fā)小組4 用戶(hù)操作手冊(cè)(初稿)飛Q軟件開(kāi)發(fā)小組 5 軟件工程及其應(yīng)用 周蘇、王文等天津科學(xué)技術(shù)出版社 6 軟件工程 張海藩清華大學(xué)出版社 7 Computer Network A.S.TanenbaunPrentice Hall8網(wǎng)絡(luò)上的資料 文檔所采用的標(biāo)準(zhǔn)是參照軟件工程導(dǎo)論沈美明著 的“計(jì)算機(jī)軟件開(kāi)發(fā)文檔編寫(xiě)指南”。2.總體設(shè)計(jì): 2、1需求概要:應(yīng)廣大用戶(hù)的要求,要求做一個(gè)性能更高更人性化的即使聊天工具,我飛Q軟件設(shè)計(jì)小組努力為大家寫(xiě)一個(gè)更好的即時(shí)聊天工具。飛Q2012聊天系統(tǒng)的總目標(biāo)是:在計(jì)
5、算機(jī)網(wǎng)絡(luò),數(shù)據(jù)庫(kù)和先進(jìn)的開(kāi)發(fā)平臺(tái)上,利用現(xiàn)有的軟件,配置一定的硬件,開(kāi)發(fā)一個(gè)具有開(kāi)放體系結(jié)構(gòu)的、易擴(kuò)充的、易維護(hù)的、具有良好人機(jī)交互界面的飛Q2012聊天系統(tǒng),實(shí)現(xiàn)添加好友,刪除好友,相互聊天系統(tǒng),為人們聊天提供準(zhǔn)確、精細(xì)、迅速的信息。根據(jù)可行性研究的結(jié)果和客戶(hù)的要求,分析現(xiàn)有情況及問(wèn)題,采用Client/Server結(jié)構(gòu),將飛Q2012聊天系統(tǒng)劃分為兩個(gè)子系統(tǒng):客戶(hù)端子系統(tǒng),服務(wù)器端子系統(tǒng)。要求系統(tǒng)能有效、快速、安全、可靠和無(wú)誤的完成上述操作。并要求客戶(hù)機(jī)的界面要單明了,易于操作,服務(wù)器程序利于維護(hù)。 2、2 軟件結(jié)構(gòu): 各模塊之間的關(guān)系已由概要設(shè)計(jì)給出下面介紹詳細(xì)的設(shè)計(jì) 1 登陸模塊 2
6、申請(qǐng)模塊 3 安全模塊 4 聊天模塊 服務(wù)器端:1、申請(qǐng)模塊c2、登錄模塊3、添加好友模塊4、刪除好友模塊5修改好友昵稱(chēng)模塊6、查找用戶(hù)模塊7、安全模塊7.1、設(shè)置密保模塊7.2、判斷是否設(shè)置密保模塊7.3、判斷密保答案是否正確模塊7.4、修改密保模塊 7.5、修改密碼模塊7.6、找回密碼8、移動(dòng)好友模塊9、組操作模塊10、發(fā)送系統(tǒng)消息模塊11、更新個(gè)人信息模塊12、請(qǐng)求ipPort 模塊13 、心跳模塊13.1、用戶(hù)心跳接收處理模塊13.2、服務(wù)器定時(shí)檢測(cè)超時(shí)模塊13.3、服務(wù)器推拉檢測(cè)在線模塊14、添加可利用飛Q號(hào)3、程序描述:客戶(hù)端總模塊: 1 登陸模塊1 登錄過(guò)程對(duì)在飛Q登錄信息界面中
7、輸入的各項(xiàng)信息進(jìn)行初步檢驗(yàn)。若發(fā)現(xiàn)錯(cuò)誤,輸入數(shù)據(jù)全部清空,以讓用戶(hù)重新輸入一次。若未發(fā)現(xiàn)錯(cuò)誤,轉(zhuǎn)入主界面。其中的錯(cuò)誤種類(lèi)有: 1.輸入數(shù)據(jù)不匹配 帳號(hào) 數(shù)據(jù)庫(kù)沒(méi)有該帳號(hào) 密碼 與對(duì)應(yīng)賬號(hào)的密碼不匹配2 輸入數(shù)據(jù)不能為空if (賬號(hào)為空) 請(qǐng)輸入賬號(hào)再登陸else if (賬號(hào)長(zhǎng)度小于6或?qū)τ?0) 請(qǐng)輸入正確的賬號(hào),賬號(hào)可以位數(shù)字或Email地址。else if (密碼為空) 請(qǐng)輸入密碼后再登陸else 通知服務(wù)器 賬號(hào)為:xxx 密碼為:xxx的請(qǐng)求登陸 2申請(qǐng)過(guò)程 對(duì)之前沒(méi)有申請(qǐng)飛Q的用戶(hù),不能登錄飛Q,而必須點(diǎn)擊申請(qǐng),成為飛Q大家庭的一員。 點(diǎn)擊之后轉(zhuǎn)入申請(qǐng)界面 3 尋找忘記密碼過(guò)程 對(duì)
8、之前申請(qǐng)飛Q的用戶(hù),如果忘記密碼,請(qǐng)不要擔(dān)心,點(diǎn)擊界面上的“忘記密碼”, 點(diǎn)擊之后轉(zhuǎn)入尋找密碼界面2申請(qǐng)模塊對(duì)在飛Q申請(qǐng)信息界面中輸入的各項(xiàng)信息進(jìn)行賬號(hào)申請(qǐng)。若發(fā)現(xiàn)錯(cuò)誤,輸入數(shù)據(jù)全部清空,以讓用戶(hù)重新輸入一次。若未發(fā)現(xiàn)錯(cuò)誤,轉(zhuǎn)入賬號(hào)申請(qǐng)成功界面。 if (昵稱(chēng)為空)請(qǐng)輸入昵稱(chēng)else if (密碼格式錯(cuò)誤(小于6或大于20))密碼必須6-20個(gè)字符! 密碼框清空,重新輸入else if (兩次密碼輸入不匹配)兩次密碼輸入不一致 密碼框清空,重新輸入else 獲取注冊(cè)信息 點(diǎn)擊新用戶(hù)注冊(cè),向服務(wù)器傳輸注冊(cè)信息3 增刪改查模塊3.1 查找好友模塊對(duì)在飛Q查找好友界面中選擇查找類(lèi)型(精確查找或條件查
9、找),輸入各項(xiàng)查找信息進(jìn)行好友查找。若發(fā)現(xiàn)錯(cuò)誤,輸入數(shù)據(jù)全部清空,以讓用戶(hù)重新輸入一次。若未發(fā)現(xiàn)錯(cuò)誤,轉(zhuǎn)入查找結(jié)果界面。在查找結(jié)果界面中選擇要添加的好友,雙擊,查看該好友的詳細(xì)資料,點(diǎn)擊添加,轉(zhuǎn)入好友信息驗(yàn)證界面。在好友信息界面,輸入驗(yàn)證信息,完成好友的添加。Search類(lèi)if (查找聯(lián)系人) if (精確查找) if (查詢(xún)條件為空)請(qǐng)至少填一個(gè)查詢(xún)條件 else 獲取查找信息 點(diǎn)擊查找把查找信息傳遞給服務(wù)器 else if (條件查找) 獲取查找信息 點(diǎn)擊查找把查找信息傳遞給服務(wù)器 Search_rasult類(lèi) if(點(diǎn)擊添加好友) if(添加好友選擇的是自己) 對(duì)不起,自己不能加自己為好
10、友! 重新選擇 else 把選擇的好友發(fā)送給服務(wù)器 else if(關(guān)閉) 放棄添加為好友 Addfriends類(lèi) if (確定添加為好友) 把選擇的好友信息發(fā)送給服務(wù)器 else if (取消) 放棄添加為好友 3.2 刪除好友模塊 找到你要?jiǎng)h除的對(duì)象所在的用戶(hù)組,展開(kāi),找到該用戶(hù),右擊,點(diǎn)擊好友刪除,然后刷新好友列表;3.3.3 修改個(gè)人資料模塊點(diǎn)擊自己頭像,轉(zhuǎn)入個(gè)人資料界面,更新你所需要的信息選項(xiàng);確定更新點(diǎn)擊確定,如果不想更新,點(diǎn)擊取消即可;更改頭像:點(diǎn)擊更換頭像,即可轉(zhuǎn)入更換頭像界面,界面中陳列了各種頭像,點(diǎn)擊你想要的頭像,即可顯示該頭像的不同樣式,一供你參考。思考之后確實(shí)想更換,點(diǎn)
11、擊確定,立刻刷新所有界面,確保頭像更換。如果不想更換,點(diǎn)擊取消即可。3.4 好友移動(dòng)模塊找到你要移動(dòng)的對(duì)象所在的用戶(hù)組,展開(kāi),找到該用戶(hù),右擊,點(diǎn)擊移動(dòng),在彈出框中選擇移動(dòng)的組對(duì)象,向服務(wù)器發(fā)送相應(yīng)的數(shù)據(jù),然后刷新好友列表;3.5 組操作模塊 修改找到你要修改的用戶(hù)組,右擊點(diǎn)擊重命名,向服務(wù)器發(fā)送該賬號(hào)的修改組信息,刷新好友列表,即可看見(jiàn)修改成果. 刪除找到你要?jiǎng)h除用戶(hù)組,展開(kāi),右擊,點(diǎn)擊刪除分組,向服務(wù)器發(fā)送該賬號(hào)的刪除組信息,然后刷新好友列表;如果,要?jiǎng)h除的是默認(rèn)分組“我的好友”,系統(tǒng)不提供刪除權(quán)限。 添加在好友列表中右擊,點(diǎn)擊添加分組,輸入分組名,點(diǎn)擊確定,向服務(wù)器發(fā)送該賬號(hào)的組信息,不
12、想添加,點(diǎn)擊取消。4 安全模塊對(duì)在飛Q安全界面中,分為“安全概述”,“常見(jiàn)欺詐”,“修改密碼”,“修改密?!保?安全概述 安全概述 概述了你當(dāng)前飛Q的安全狀況if (設(shè)置密保并且密碼等級(jí)為良好以上)安全狀況良好請(qǐng)繼續(xù)保持良好的習(xí)慣 可立即完成設(shè)置密碼else if (設(shè)置密保并且密碼等級(jí)為中等以下)安全狀況存在隱患請(qǐng)定期修改密碼立即完成設(shè)置密碼else 安全狀況危險(xiǎn)請(qǐng)立刻設(shè)置密保問(wèn)題 立即完成設(shè)置密保 常見(jiàn)欺詐常見(jiàn)的集中欺詐方式:釣魚(yú)網(wǎng)址,視頻欺詐,中獎(jiǎng)欺詐,冒充好友欺詐; 修改密碼 修改密碼之前請(qǐng)確保設(shè)置密保;如果沒(méi)有設(shè)置密保問(wèn)題,請(qǐng)先設(shè)置密保問(wèn)題,以確保該賬戶(hù)的安全性。如果設(shè)置了密保問(wèn)題,
13、請(qǐng)先輸入原密保問(wèn)題,核對(duì)用戶(hù)身份。密保正確才可以修改,如果錯(cuò)誤,對(duì)不起,不能修改密碼。if(三個(gè)密保問(wèn)題有空) 對(duì)不起,密保問(wèn)題回答不能為空! 沒(méi)填寫(xiě)的須不完整else向服務(wù)器獲取對(duì)應(yīng)密保問(wèn)題的答案If(回答錯(cuò)誤) 提示:對(duì)不起,密保問(wèn)題回答不能正確 全部清空,重新輸入 else 修改密碼 輸入舊密碼 if (輸入的舊密碼正確) if (新密碼為空) 提示:密碼不能為空else if (兩次密碼輸入不一致)提示:兩次密碼輸入不一致 else if (兩次密碼輸入一致并且不空) 向服務(wù)器發(fā)送該賬號(hào)的新密碼else 提示:密碼有誤,請(qǐng)重新輸入 修改密保如果沒(méi)有設(shè)置密保問(wèn)題,設(shè)置密保問(wèn)題。如果設(shè)置了
14、密保問(wèn)題,請(qǐng)先輸入原密保問(wèn)題,核對(duì)用戶(hù)身份。密保正確才可以修改,如果錯(cuò)誤,對(duì)不起,不能修改密保。if(沒(méi)有設(shè)置密保) 選擇密保問(wèn)題回答 If(選擇的密保問(wèn)題重復(fù)) 提示:選擇的密保問(wèn)題重復(fù) 重新選擇密保問(wèn)題 Else if(修改密保時(shí)驗(yàn)證密保問(wèn)題為空) 提示:修改密保時(shí)驗(yàn)證密保問(wèn)題為空 Else 服務(wù)器發(fā)送該賬號(hào)的新密保問(wèn)題和新密保問(wèn)題對(duì)應(yīng)的答案 else 已經(jīng)設(shè)置設(shè)置密保向服務(wù)器獲取對(duì)應(yīng)密保問(wèn)題的答案輸入密保問(wèn)題答案(用戶(hù))If(回答錯(cuò)誤) 提示:對(duì)不起,密保問(wèn)題回答不能正確 全部清空,重新輸入 else 修改密保 選擇密保問(wèn)題回答 If(選擇的密保問(wèn)題重復(fù)) 提示:選擇的密保問(wèn)題重復(fù) 重新
15、選擇密保問(wèn)題 Else if(修改密保時(shí)驗(yàn)證密保問(wèn)題為空) 提示:修改密保時(shí)驗(yàn)證密保問(wèn)題為空 Else 服務(wù)器發(fā)送該賬號(hào)的新密保問(wèn)題和新密保問(wèn)題對(duì)應(yīng)的答案 5 聊天模塊所有的聊天窗口的即時(shí)聊天信息 只要點(diǎn)擊發(fā)送,聊天信息會(huì)發(fā)送到服務(wù)器中信息中轉(zhuǎn)站中;在信息中轉(zhuǎn)站中判斷該發(fā)送的對(duì)象,再由服務(wù)器發(fā)送給對(duì)。服務(wù)器模塊:1、申請(qǐng)模塊 將用戶(hù)發(fā)送過(guò)來(lái)的申請(qǐng)信息寫(xiě)入臨時(shí)變量對(duì)象中并存入數(shù)據(jù)庫(kù)中在數(shù)據(jù)庫(kù)中建立如下信息在main數(shù)據(jù)庫(kù)的各表中插入申請(qǐng)的號(hào)碼在users 數(shù)據(jù)庫(kù)中建立該帳號(hào)的檔案,包括好友列表、添加好友驗(yàn)證表、歷史記錄表等等2、登錄模塊接收數(shù)據(jù)并存入loginpot中判斷接收的密碼和服務(wù)器中的密
16、碼是否相同,相同則返回登錄成功,并發(fā)送一系列信息(見(jiàn)下),不相同則返回登錄失敗,3、添加好友模塊1、發(fā)送添加好友請(qǐng)求:用戶(hù)發(fā)送添加好友請(qǐng)求包,服務(wù)器解析出要添加的好友,然后從數(shù)據(jù)庫(kù)中查找出該用戶(hù)的添加好友權(quán)限jugde 然后進(jìn)行一下判斷:switch (judge)case 1:/假如統(tǒng)一任何人加入在雙方數(shù)據(jù)庫(kù)中分別添加對(duì)方,并且向被添加的的用戶(hù)發(fā)送的界面刷新命令break;case 2:對(duì)方需要驗(yàn)證信息,通知客戶(hù)端break;case 0: 對(duì)方不允許任何人加入,通知客戶(hù)端break;2、發(fā)送驗(yàn)證信息:用戶(hù)發(fā)送驗(yàn)證信息包,服務(wù)器解析出數(shù)據(jù),判斷要發(fā)送驗(yàn)證信息的用戶(hù)是否在線If(在線)在線的話
17、,就把驗(yàn)證信息發(fā)送到該用戶(hù)客戶(hù)端上并顯示Else不在線的話,就把驗(yàn)證信息存入要發(fā)送的用戶(hù)的數(shù)據(jù)庫(kù)中,等到該用戶(hù)下次登錄時(shí)候并會(huì)提示該用戶(hù)有添加好友驗(yàn)證信息3、發(fā)送同意以否信息用戶(hù)發(fā)送同意與否信息包,服務(wù)器解析出數(shù)據(jù),判斷要發(fā)送同意與否信息的用戶(hù)是否在線,判斷同意與否信息是否If(同意)寫(xiě)入數(shù)據(jù)庫(kù)相應(yīng) 的信息。Else不對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。If(在線)在線的話,就把同意與否信息發(fā)送到該用戶(hù)客戶(hù)端,同時(shí)把此人的基本信息發(fā)送到客戶(hù)端Else不在線的話,就把同意與否信息存入要發(fā)送的用戶(hù)的數(shù)據(jù)庫(kù)中,等到該用戶(hù)下次登錄時(shí)候并會(huì)提示該用戶(hù)有添加好友成功與否信息4、刪除好友模塊刪除好友模塊設(shè)計(jì)思路比較簡(jiǎn)單,如下
18、用戶(hù)發(fā)送刪除好友信息包,服務(wù)器解析出基本數(shù)據(jù),刪除發(fā)送請(qǐng)求用戶(hù)的數(shù)據(jù)庫(kù)中要?jiǎng)h除的好友的信息,同時(shí)在對(duì)方的數(shù)據(jù)庫(kù)中也相應(yīng)的刪除此人信息,并且將刪除成功與否信息發(fā)送回去,同時(shí)給要?jiǎng)h除的用戶(hù)發(fā)送刷新界面命令,當(dāng)然得先判斷該用戶(hù)是否在線If(在線)在線的話,給要?jiǎng)h除的用戶(hù)發(fā)送刷新界面命令,刪除點(diǎn)發(fā)送請(qǐng)求的用戶(hù)的信息Else不在線的話,不用再進(jìn)行任何操作 5修改好友昵稱(chēng)模塊同樣,修改好友昵稱(chēng)模塊,也很簡(jiǎn)單明了,不需要進(jìn)行復(fù)雜的邏輯判斷,詳細(xì)過(guò)程如下:用戶(hù)發(fā)送修改好友昵稱(chēng)信息包,服務(wù)器解析成基本數(shù)據(jù),在數(shù)據(jù)庫(kù)中找到該好友的好友列表,修改該用戶(hù)要修改的好友的昵稱(chēng),然后子線程就可以終止了6、查找用戶(hù)模塊用戶(hù)發(fā)
19、送修改好友昵稱(chēng)信息包,服務(wù)器解析成基本數(shù)據(jù),首先判斷該用戶(hù)用的是什么搜索模式,If(搜索模式是精確查找模式)根據(jù)內(nèi)容構(gòu)造出SQL語(yǔ)句,在數(shù)據(jù)庫(kù)中查找出相應(yīng)的用戶(hù),構(gòu)造出列表發(fā)回客戶(hù)端Else if(搜索模式是按條件查找模式)根據(jù)內(nèi)容構(gòu)造出SQL語(yǔ)句,在數(shù)據(jù)庫(kù)中查找出相應(yīng)的用戶(hù),構(gòu)造出列表發(fā)回客戶(hù)端7.1、設(shè)置密保模塊用戶(hù)發(fā)送修改好友昵稱(chēng)信息包,服務(wù)器解析成基本數(shù)據(jù),在數(shù)據(jù)庫(kù)中找到該用戶(hù)的的信息,將密保問(wèn)題和答案寫(xiě)入該用戶(hù)的數(shù)據(jù)庫(kù)中,假如已有密保問(wèn)題則轉(zhuǎn)到重設(shè)密保模塊 7.2、判斷是否設(shè)置密保模塊用戶(hù)發(fā)送請(qǐng)求后,服務(wù)器解析出數(shù)據(jù),在數(shù)據(jù)庫(kù)中找到該好友,查看該好友是否設(shè)置密保,If(設(shè)置了密保)返
20、回密保問(wèn)題Else if(沒(méi)有設(shè)置密保)發(fā)送回去沒(méi)有設(shè)置密保的標(biāo)識(shí)7.3、判斷密保答案是否正確模塊用戶(hù)發(fā)送給服務(wù)器密保答案信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫(kù)中查找該用戶(hù)的信息,得到密保問(wèn)題和答案,進(jìn)行判斷三個(gè)問(wèn)題是否全部回答對(duì)If(三個(gè)密保問(wèn)題全回答對(duì))向該用戶(hù)客戶(hù)端發(fā)送驗(yàn)證成功的消息Else(三個(gè)問(wèn)題不全對(duì)或全不對(duì))向該用戶(hù)客戶(hù)端發(fā)送驗(yàn)證失敗信息7.4、修改密保模塊這里說(shuō)明一下,修改密保的模塊是在驗(yàn)證密保答案正確的前提下才能進(jìn)入的,所以此模塊僅僅是覆蓋掉該用戶(hù)的,特此聲明,呵呵,聲明有點(diǎn)晚了。沒(méi)有復(fù)雜邏輯判斷,思路如下:用戶(hù)發(fā)送給服務(wù)器新密保信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫(kù)中查找該
21、用戶(hù),在數(shù)據(jù)庫(kù)中重寫(xiě)此人的密保問(wèn)題和答案,然后子線程接收。7.5、修改密碼模塊聲明如7.4所示,不再重復(fù)思路如下:用戶(hù)發(fā)送給服務(wù)器新密碼信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫(kù)中查找該用戶(hù),在數(shù)據(jù)庫(kù)中重寫(xiě)此人的密碼,同時(shí)將新設(shè)置的密碼加入內(nèi)存中用戶(hù)密碼hashmap中,然后子線程接收。7.6、找回密碼找回密碼其實(shí)和重設(shè)密保有什么相識(shí)的地方,都是先驗(yàn)證信息密保信息是否正確,然后根據(jù)正確與否做出相應(yīng)的處理用戶(hù)發(fā)送請(qǐng)求后,服務(wù)器解析出數(shù)據(jù),在數(shù)據(jù)庫(kù)中找到該好友,查看該好友是否設(shè)置密保,If(設(shè)置了密保)返回密保問(wèn)題。判斷接受的密保答案是否正確If(三個(gè)問(wèn)題都回答正確)返回驗(yàn)證成功信息,通知客戶(hù)端轉(zhuǎn)入重
22、設(shè)密碼模塊Else返回驗(yàn)證失敗信息Else if(沒(méi)有設(shè)置密保)發(fā)送回去沒(méi)有設(shè)置密保的標(biāo)識(shí),通知該用戶(hù)由于沒(méi)有設(shè)置密碼,通過(guò)此方法不能找回密碼。8、移動(dòng)好友模塊移動(dòng)好友模塊設(shè)計(jì)思路比較簡(jiǎn)單,如下用戶(hù)發(fā)送移動(dòng)好友信息包,服務(wù)器解析出基本數(shù)據(jù),在數(shù)據(jù)庫(kù)中查到該用戶(hù)的用戶(hù)列表信息,更新列表信息,在數(shù)據(jù)庫(kù)中做相應(yīng)的修改9、組操作模塊由于基本的幾個(gè)組操作有很多相似之處,所以將幾個(gè)組操作劃為一個(gè)模塊,設(shè)計(jì)思路如下:用戶(hù)發(fā)送組操作 信息包,服務(wù)器解析出基本數(shù)據(jù)和命令,判斷要進(jìn)行的組操作是什么操作,然后進(jìn)行相應(yīng)的操作,具體設(shè)計(jì)思路如下:If(組操作命令為增加組)在users數(shù)據(jù)庫(kù)中找到此用戶(hù)的groupsLi
23、st表,在此表中添加相應(yīng)的組Else if(組操作為刪除組)1、在users數(shù)據(jù)庫(kù)中找到此用戶(hù)的friendsList表,把相應(yīng)組的好友的組屬性改為 我的好友 ,即將要?jiǎng)h除組中的好友放到我的好友中,而不是直接將他們刪除, 2、在users數(shù)據(jù)庫(kù)中找到此用戶(hù)的groupsList表,在此表中刪除相應(yīng)的組Else if(組操作為修改組的名稱(chēng))1、在users數(shù)據(jù)庫(kù)中找到此用戶(hù)的friendsList表,把相應(yīng)組的好友的組屬性改為 要修改的組名 2、在users數(shù)據(jù)庫(kù)中找到此用戶(hù)的groupsList表,在此表中刪找到相應(yīng)的組,修改此組的名稱(chēng)為要修改的名稱(chēng) 10、發(fā)送系統(tǒng)消息模塊發(fā)送系統(tǒng)消息模塊是由
24、服務(wù)器直接調(diào)用的,來(lái)完成一些必須的用戶(hù)響應(yīng),此模塊發(fā)送消息的不同是由器構(gòu)造函數(shù)決定的,其構(gòu)造函數(shù)共有7種,如下:/ public sendSystemMessageThread(String qq, int status) throws SQLException 1、發(fā)送改變狀態(tài)public sendSystemMessageThread(String text) throws SQLException2、發(fā)送系統(tǒng)消息(全部人)public sendSystemMessageThread(String qq, int sign, String ip_od, String t) throws S
25、QLException3、發(fā)送上次登錄信息(登陸者)public sendSystemMessageThread(String qq, String text) throws SQLException 4、發(fā)送系統(tǒng)消息(對(duì)登錄者)public sendSystemMessageThread(String qq, systemMessage sys) throws SQLException5、發(fā)送添加好友請(qǐng)求信息public sendSystemMessageThread(int sign, String qq) throws SQLException6、當(dāng)在其他地方登錄時(shí)給另一個(gè)QQ發(fā)送下線通
26、知public sendSystemMessageThread(String qq, systemMessage sys, int agree)7、給該用戶(hù)發(fā)送好友狀態(tài)改變由服務(wù)器根據(jù)不同的需要構(gòu)造不同 的發(fā)送系統(tǒng)消息線程,實(shí)現(xiàn)相應(yīng)的響應(yīng)11、更新個(gè)人信息模塊用戶(hù)發(fā)送給服務(wù)器新個(gè)人信息信息,服務(wù)器解析出相應(yīng)的數(shù)據(jù),從數(shù)據(jù)庫(kù)中查找該用戶(hù),在數(shù)據(jù)庫(kù)中重寫(xiě)已經(jīng)更改了的此人的信息12、請(qǐng)求ipPort 模塊此模塊是服務(wù)器中唯一和聊天相關(guān)的監(jiān)聽(tīng)線程,此種設(shè)計(jì)方法極大的降低了服務(wù)器的壓力,獲取ip 和聊天port 是聊天中很重要的一個(gè)環(huán)節(jié),設(shè)計(jì)思路如下:用戶(hù)發(fā)送給服務(wù)器請(qǐng)求另一個(gè)人的port的信息包,服務(wù)
27、器解析出相應(yīng)的數(shù)據(jù),從內(nèi)存中查找另一個(gè)用戶(hù)的ip 和聊天 port ,判斷是否得到此人信息If(查詢(xún)到此人的在線信息)給客戶(hù)端返回找到的在線信息Else給客戶(hù)端返回沒(méi)有找到此人信息,也就是此人不在線,客戶(hù)端然后做出相應(yīng)地相應(yīng) 13、心跳模塊心跳相互協(xié)作的工作組及即時(shí)聊天領(lǐng)域發(fā)揮著詳單重要的角色,通過(guò)發(fā)送心跳報(bào),來(lái)判斷各個(gè)部分工作是否正常,以防某個(gè)部分運(yùn)作異常發(fā)現(xiàn)不了,造成嚴(yán)重錯(cuò)誤。心跳包就是在客戶(hù)端和服務(wù)器間定時(shí)通知對(duì)方自己狀態(tài)的一個(gè)自己定義的命令字,按照一定的時(shí)間間隔發(fā)送,類(lèi)似于心跳,所以叫做心跳包。用來(lái)判斷對(duì)方(設(shè)備,進(jìn)程或其它網(wǎng)元)是否正常運(yùn)行,采用定時(shí)發(fā)送簡(jiǎn)單的通訊包,如果在指定時(shí)間段內(nèi)未收到對(duì)方響應(yīng),則判斷對(duì)方已經(jīng)離線。用于檢測(cè)TCP的異常斷開(kāi)?;驹蚴欠?wù)器端不能有效的判斷客戶(hù)端是否在線,也就是說(shuō),服務(wù)器無(wú)法區(qū)分客戶(hù)端是長(zhǎng)時(shí)間在空閑,還是已經(jīng)掉線的情況。所謂的心跳包就是客戶(hù)端定時(shí)發(fā)送簡(jiǎn)單的信息給服務(wù)器端告訴它我還在而已。代碼就是每隔幾分鐘發(fā)送一個(gè)固定信息給服務(wù)端,服務(wù)端收到后回復(fù)一個(gè)固定信息如果服務(wù)端幾分鐘內(nèi)沒(méi)有收到客戶(hù)端信息則視客戶(hù)端斷開(kāi)。比如有些通信軟件長(zhǎng)時(shí)間不使用,要想知道它的狀態(tài)是在線還是離線就需要心跳包,定
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年公共衛(wèi)生管理專(zhuān)業(yè)綜合素質(zhì)測(cè)試試卷及答案
- 2025年公共事務(wù)管理人員招聘考試試題及答案
- 2025年公共安全管理職業(yè)考試試題及解答
- 鉆孔沖洗引流術(shù)后健康指導(dǎo)
- 2025年工程管理師職業(yè)資格考試試卷及答案
- 2025年企業(yè)管理專(zhuān)業(yè)考試試題及答案
- 《重點(diǎn)行業(yè)減污降碳協(xié)同調(diào)控效應(yīng)定量評(píng)估技術(shù)規(guī)范》征求意見(jiàn)稿及編制說(shuō)明
- 2025年房地產(chǎn)開(kāi)發(fā)與管理專(zhuān)業(yè)課程綜合考試試卷及答案
- 2025年創(chuàng)新創(chuàng)業(yè)與商業(yè)模式測(cè)試題及答案
- 2025年電子電路與應(yīng)用基礎(chǔ)知識(shí)考試試題及答案
- 2022-2023學(xué)年重慶市合川市三下數(shù)學(xué)期末學(xué)業(yè)質(zhì)量監(jiān)測(cè)模擬試題含解析
- 文創(chuàng)園物業(yè)管理方案
- 全過(guò)程造價(jià)咨詢(xún)服務(wù)實(shí)施方案
- 初二生地會(huì)考復(fù)習(xí)資料全
- 里氏硬度法檢測(cè)鋼材強(qiáng)度范圍記錄表、鋼材里氏硬度與抗拉強(qiáng)度范圍換算表
- 《屹立在世界的東方》示范課教學(xué)課件【人教部編版小學(xué)道德與法治五年級(jí)下冊(cè)】
- 四川省宜賓市翠屏區(qū)中學(xué)2022-2023學(xué)年數(shù)學(xué)八年級(jí)第二學(xué)期期末檢測(cè)試題含解析
- 2020-2021成都石室聯(lián)合中學(xué)蜀華分校小學(xué)數(shù)學(xué)小升初模擬試卷附答案
- 某冶金機(jī)械廠供配電系統(tǒng)設(shè)計(jì)
- 《在中亞細(xì)亞草原上》賞析 課件
- 城市軌道交通供電技術(shù)442頁(yè)完整版教學(xué)課件匯總?cè)珪?shū)電子教案
評(píng)論
0/150
提交評(píng)論