基于BS方式的即時通訊軟件的設計與實現(xiàn)—畢業(yè)設計論文_第1頁
基于BS方式的即時通訊軟件的設計與實現(xiàn)—畢業(yè)設計論文_第2頁
基于BS方式的即時通訊軟件的設計與實現(xiàn)—畢業(yè)設計論文_第3頁
基于BS方式的即時通訊軟件的設計與實現(xiàn)—畢業(yè)設計論文_第4頁
基于BS方式的即時通訊軟件的設計與實現(xiàn)—畢業(yè)設計論文_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、畢業(yè)設計(論文)基于B/S方式的即時通訊軟件的設計與實現(xiàn)論文作者姓名:申請學位專業(yè):申請學位類別:指導教師姓名(職稱):論文提交日期:基于B/S方式的即時通訊軟件的設計與實現(xiàn)摘 要即時通訊(Instant Messaging)是目前Internet上最為流行的通訊方式,而各種各樣的即時通訊軟件也層出不窮;服務提供商也提供了越來越豐富的通訊服務功能。隨著互聯(lián)網(wǎng)的發(fā)展,即時通訊的運用將日益廣泛,即時通訊軟件業(yè)方興未艾。本文首先描述了即時通訊業(yè)的發(fā)展和現(xiàn)狀,然后初步探討了即時通訊所涉及到的一些技術,最后對現(xiàn)有的技術進行了對比和分析,提出了一些可能的改進方案,并且設計了一個名為web-msn的即時通訊

2、系統(tǒng)。 web-msn是基于B/S的模式的即時通訊系統(tǒng),通過IE等瀏覽器直接完成客戶端的登錄、數(shù)據(jù)傳輸,更加便捷了用戶之間的通訊和交友;使用最新的Ajax技術,使其非常快,無需等待頁面的刷新,實現(xiàn)了即時通訊的功能。 在系統(tǒng)設計與建模過程中,使用了UML和面向?qū)ο蟮姆治?、設計方法,本系統(tǒng)基于.NET Framework 1.1,使用Visual Studio .NET 2003作為開發(fā)工具,將.NET中的一些新技術運用到了系統(tǒng)中;在開發(fā)過程中用到了時下流行的重構開發(fā)方法,優(yōu)化了系統(tǒng)的設計。 關鍵詞:Web-msn;即時通訊;B/S; AjaxThe Design and Implementati

3、on of Instant Message Based on B/SAbstractInstant message is currently the most popular way to communicate on the Internet,by the way various instant message software have been continuously appearing; service provider offers more and more communication services nowadays. As the development of the In

4、ternet, instant message will be more widely used than before. This article first describes the development and the current status of the instant message. Then it discusses the technologies of the instant message such as communication protocol, service mode and friend-making mode. It makes a comparis

5、on and analysis with respect to the current technology and also provides some possible solutions for improvement. At last it designs and develops an instant message system named web-msn.The web-msn system is an instant message system which bases on b/s mode. You can login and interact with it throug

6、h IE. It makes communication and finding friends more conveniently. It is designed using Ajax, which doesnt need to wait for refreshing page, so carry out communication instantly.This system is based on .NET Framework 1.1 and uses Visual Studio .NET 2003 as the development tool. It accumulated some

7、new technology in .NET into our system. During the process of development, it used the popular reconstruction development method, which optimizes the system design.Key words: Web-msn; Instant Message; B/S; Ajax目 錄 論文總頁數(shù):24頁 TOC o 1-3 h z u HYPERLINK l _Toc169514637 1 引言 PAGEREF _Toc169514637 h 1 HYP

8、ERLINK l _Toc169514638 2 系統(tǒng)分析 PAGEREF _Toc169514638 h 2 HYPERLINK l _Toc169514639 2.1 課題目的 PAGEREF _Toc169514639 h 2 HYPERLINK l _Toc169514640 2.2 課題意義 PAGEREF _Toc169514640 h 2 HYPERLINK l _Toc169514641 2.3 應解決的問題 PAGEREF _Toc169514641 h 2 HYPERLINK l _Toc169514642 2.4 需要實現(xiàn)的功能 PAGEREF _Toc169514642

9、 h 2 HYPERLINK l _Toc169514643 2.5 開發(fā)環(huán)境 PAGEREF _Toc169514643 h 2 HYPERLINK l _Toc169514644 2.5.1 vs2003開發(fā)環(huán)境介紹 PAGEREF _Toc169514644 h 2 HYPERLINK l _Toc169514645 2.5.2 Sql Server 2000介紹 PAGEREF _Toc169514645 h 3 HYPERLINK l _Toc169514646 2.5.3 C#語言介紹 PAGEREF _Toc169514646 h 3 HYPERLINK l _Toc169514

10、647 2.6 關鍵技術-Ajax簡介 PAGEREF _Toc169514647 h 3 HYPERLINK l _Toc169514648 3 需求分析 PAGEREF _Toc169514648 h 3 HYPERLINK l _Toc169514649 3.1 即時消息的一般需求 PAGEREF _Toc169514649 h 3 HYPERLINK l _Toc169514650 3.2 即時通訊系統(tǒng)需求 PAGEREF _Toc169514650 h 4 HYPERLINK l _Toc169514651 4 系統(tǒng)設計 PAGEREF _Toc169514651 h 5 HYPER

11、LINK l _Toc169514652 4.1 方案論證 PAGEREF _Toc169514652 h 5 HYPERLINK l _Toc169514653 4.1.1 “即時”技術的選擇 PAGEREF _Toc169514653 h 5 HYPERLINK l _Toc169514654 4.1.2 web-msn的模型選擇 PAGEREF _Toc169514654 h 6 HYPERLINK l _Toc169514655 4.2 數(shù)據(jù)庫設計 PAGEREF _Toc169514655 h 8 HYPERLINK l _Toc169514656 4.2.1 數(shù)據(jù)表設計 PAGER

12、EF _Toc169514656 h 8 HYPERLINK l _Toc169514657 4.2.2 存儲過程設計 PAGEREF _Toc169514657 h 8 HYPERLINK l _Toc169514658 4.3 系統(tǒng)功能分析與設計 PAGEREF _Toc169514658 h 9 HYPERLINK l _Toc169514659 4.4 系統(tǒng)模塊設計 PAGEREF _Toc169514659 h 11 HYPERLINK l _Toc169514660 4.4.1 注冊模塊 PAGEREF _Toc169514660 h 11 HYPERLINK l _Toc1695

13、14661 4.4.2 登錄模塊 PAGEREF _Toc169514661 h 11 HYPERLINK l _Toc169514662 4.4.3 傳輸信息模塊 PAGEREF _Toc169514662 h 12 HYPERLINK l _Toc169514663 4.4.4 退出系統(tǒng)模塊 PAGEREF _Toc169514663 h 13 HYPERLINK l _Toc169514664 5 系統(tǒng)實現(xiàn) PAGEREF _Toc169514664 h 14 HYPERLINK l _Toc169514665 5.1 發(fā)送消息功能實現(xiàn) PAGEREF _Toc169514665 h 1

14、4 HYPERLINK l _Toc169514666 5.2 接收消息功能實現(xiàn) PAGEREF _Toc169514666 h 15 HYPERLINK l _Toc169514667 6 測試 PAGEREF _Toc169514667 h 17 HYPERLINK l _Toc169514668 6.1 測試內(nèi)容 PAGEREF _Toc169514668 h 17 HYPERLINK l _Toc169514669 6.2 測試結(jié)果 PAGEREF _Toc169514669 h 17 HYPERLINK l _Toc169514670 結(jié) 論 PAGEREF _Toc16951467

15、0 h 18 HYPERLINK l _Toc169514671 參考文獻 PAGEREF _Toc169514671 h 19 HYPERLINK l _Toc169514672 附 錄 PAGEREF _Toc169514672 h 20 HYPERLINK l _Toc169514673 致 謝 PAGEREF _Toc169514673 h 23 HYPERLINK l _Toc169514674 聲 明 PAGEREF _Toc169514674 h 24 引言即時通訊軟件,幾乎是每一個上網(wǎng)用戶都必備的聯(lián)絡工具。即時通訊軟件除了能夠讓您迅速地在網(wǎng)上找到自己的朋友和工作伙伴,還可以實時

16、交談和傳遞信息,而且,現(xiàn)在不少即時通訊軟件還集成了文件共享、語音聊天、網(wǎng)絡會議等功能。截止到目前,全球約有近3億多人使用即時通訊軟件進行交流,正因為即時通訊軟件擁有數(shù)以億計的用戶和迅速增長的市場,所以各個公司都盯上了中國這個潛在的最大市場,一時間,即時通訊市場硝煙四起。除了騰訊QQ和國外的幾款著名即時通訊軟件紛紛推出新版本,網(wǎng)易也推出了一種新的即時通訊軟件網(wǎng)易泡泡。朗瑪公司也推出了名為UC的通訊工具。即時通訊軟件最早發(fā)布于1996年11月15日,以色列特拉維文的Mirabilis Ltd.發(fā)表了一個題為E.T SURF HOME:MIRABILIS LTD. PROVIDES NEW SOLU

17、TIONS FOR PEER-TO-PEER INTERNET COMMUNICATIONS的新聞稿,同時發(fā)布了他們新產(chǎn)品ICQ(I Seek You)的Beta測試版。這天標志著Internet上的第一個成熱的即時通訊系統(tǒng)(Instant Message System)的誕生。即時通訊服務在誕生之后的幾年時間得到了迅猛發(fā)展,成為新增Internet用戶的3個主要應用之一(WEB,電子郵件和即時通訊)。在國內(nèi),1999年2月,深圳騰訊公司正式發(fā)布OICQ99 beta build 0210,開通騰訊即時通訊服務。2000年5月,騰訊QQ同時在線用戶突破10萬;2001年2月l0日,騰訊QQ同時

18、在線用戶突破100萬。2004年4月份騰訊QQ同時在線人數(shù)最高記錄已經(jīng)突破了600萬大關,現(xiàn)在騰訊公司正在把即時通訊系統(tǒng)往移動通訊方向擴展,如今已經(jīng)將即時通訊與 短信息(SMS)成功結(jié)合起來。即時通訊軟件涉及和影響的領域已近越來越廣,其競爭也越來越激烈。國內(nèi)QQ最大的敵手朗瑪UC從2001年開始研發(fā),2002年的12月份UC正式發(fā)布,并且首創(chuàng)了很多技術:UC是國內(nèi)第一個做場景聊天的;UC是第一個把同學錄和校友錄結(jié)合的;第一個把即時通訊與休閑游戲相結(jié)合的;第一個把發(fā)送動畫與即時通訊相結(jié)合的。在一年的發(fā)展里,UC一度達到峰值在線30萬人,注冊用戶達到7000萬。但是縱觀這些即時通訊軟件業(yè),都是基于

19、C/S模式的,需要下載客戶端進行安裝,用戶名、密碼、聊天記錄等也是存放在本地機器上,在安全性和方便性上都有所欠缺。設計并開發(fā)一個基于WEB的即時通訊平臺,對于現(xiàn)階段的學習和研究,都是極為有意義的,基于這個前提和起因,我選擇了基于B/S方式的即時通訊軟件的設計與實現(xiàn)作為我的畢業(yè)設計。 系統(tǒng)分析 課題目的設計一個基于B/S模式的IM軟件,可以通過IE等瀏覽器直接完成客戶端的登錄、數(shù)據(jù)傳輸、好友信息分組管理、狀態(tài)更新、兩人以及多人的文字聊天等功能。 課題意義作為計算機專業(yè)的學生,即時了解和掌握流行的即時通訊機制并且應用到實踐過程中,將極大的提高自己的設計和開發(fā)軟件的積極性;提升自己的理論和技術水平,

20、跟蹤國內(nèi)外最新的技術和開發(fā)模式,為以后類似的開發(fā)積累經(jīng)驗;同時,開發(fā)出來的作品也可以真正運用到實際當中,方便大家的溝通和交流。 應解決的問題服務系統(tǒng)模型的選擇;實時查看在線好友列表;向在線好友發(fā)送即時消息;實時接收在線消息并且彈出提示;狀態(tài)的即使切換(在線,隱身等)。 需要實現(xiàn)的功能實現(xiàn)用戶注冊、登錄、退出、更改狀態(tài)等功能;實現(xiàn)文本信息發(fā)送;實現(xiàn)搜索好友,添加好友,刪除好友技術;實現(xiàn)消息的提示功能;實現(xiàn)設置好友權限功能。 開發(fā)環(huán)境vs2003開發(fā)環(huán)境介紹 Visual Studio是微軟公司出品的一款大型應用軟件,是一套完整的開發(fā)工具集,它主要用于生成ASP.NET Web應用程序、XML W

21、eb Services、桌面應用程序和移動應用程序。Visual Basic、Visual C+、Visual C# 和Visual J# 全都使用相同的集成開發(fā)環(huán)境(IDE)。利用此IDE可以共享工具且有助于創(chuàng)建混合語言解決方案,使程序可以使用不同的語言共同開發(fā)。NET開發(fā)平臺由一組用于建立Web服務應用程序和Windows桌面應用程序的軟件組件構成,包括.NET框架(Framework)、.NET開發(fā)工具和ASP.NET。Visual Studio 2003的集成開發(fā)環(huán)境中為開發(fā)人員提供了大量的實用工具以提高工作效率。這些工具包括了自動編譯、項目創(chuàng)建向?qū)?、?chuàng)建部署工程等。Sql Serve

22、r 2000介紹SQL Server2000由一系列相互協(xié)作的組件構成,能滿足最大的Web站點和企業(yè)數(shù)據(jù)處理系統(tǒng)存儲和分析數(shù)據(jù)的需要。SQLServer構架各種組件通過何種方式發(fā)揮合力,更富成效地管理數(shù)據(jù)。 SQL Server2000數(shù)據(jù)庫引擎提供完整的XML支持。它還具有構成最大的Web站點的數(shù)據(jù)存儲組件所需的可伸縮性、可用性和安全功能。SQL Server2000程序設計模型與WindowsDNA構架集成,用以開發(fā)Web應用程序,并且SQL Server2000支持EnglishQuery和 Microsoft搜索服務等功能,在Web應用程序中包含了用戶友好的查詢和強大的搜索功能。C#語

23、言介紹C#是一種語言,它是專門為了微軟的.NET戰(zhàn)略而設計的一種語言. C#也叫C#.Net。關鍵技術-Ajax簡介Ajax 是異步JavaScript和XML(Asynchronous JavaScript and XML)的英文縮寫?!癆jax”這個名詞的發(fā)明人是Jesse James Garrett,而大力推廣并且使Ajax技術炙手可熱的是Google。Google發(fā)布的Gmail,Google Suggest等應用最終讓人們了解了什么是Ajax。Ajax的核心理念在于使用XMLHttpRequest對象發(fā)送異步請求,最初為XMLHttpRequest對象提供瀏覽器支持的微軟公司。早在1

24、998年,微軟公司開發(fā)Web版Outlook時,就已經(jīng)以ActiveX控件的方式為XMLHttpRequest提供了支持。Ajax是使用客戶端腳本與Web服務器交換數(shù)據(jù)的Web應用開發(fā)方法。這樣,Web頁面不用打斷交互流程進行重新加裁,就可以動態(tài)地更新。使用Ajax,用戶可以創(chuàng)建接近本地桌面應用的直接、高可用、更豐富、更動態(tài)的Web用戶界面。實際上,Ajax不是一種技術,而是幾種技術。每種技術都具有獨特之處,合在一起就形成了一個功能強大的新技術。Ajax包括:1) XHTML和CSS;2) 使用文檔對象模型進行動態(tài)顯示和交互;3) 使用XML和XSLT進行數(shù)據(jù)交互和操作;4) 使用XMLHtt

25、pRequest進行異步數(shù)據(jù)接收;5) 使用JavaScript將它們綁定在一起。 需求分析 即時消息的一般需求一般即時消息格式需求:所有實體必須至少使用一種消息格式;一般即時消息格式必須定義發(fā)信者和即時收件箱的標識;一般即時消息格式必須包含一個讓接收者可以回消息的地址;一般即時消息格式應該包含其他通訊方法和 ,例如 號碼,郵件地;一般即時信息格式必須允許對信息有效負載的編碼和鑒別(非ASCII內(nèi)容);一般即時信息格式必須反映當前最好的國際化實踐;一般即時信息格式必須反映當前最好的可用性實踐;必須存在方法,在擴展一般即時消息格式的時候,不影響原有的域;必須提供擴展和注冊即時消息格式的模式的機制

26、。可靠性需求 協(xié)議必須存在機制,保證即時消息成功投遞或者投遞失敗的時候,發(fā)信者獲得足夠的信息。性能需求即時消息的傳輸必須足夠的迅速;即時消息的內(nèi)容必須足夠豐富;即時消息的長度盡量足夠的長。 即時通訊系統(tǒng)需求注冊需求即時通訊系統(tǒng)允許多個用戶注冊;一個用戶可以注冊多個ID;注冊所使用的帳號類型為數(shù)字或者字母;注冊新用戶時必須填寫符合要求的信息。通訊需求 用戶可以傳輸文本消息;用戶的消息可以中轉(zhuǎn)至服務器;用戶可以從服務器獲取中轉(zhuǎn)的好友消息;好友管理需求用戶可以查詢好友;用戶可以添加好友;用戶可以添加多個人為好友,一個用戶可以被多個人添加為好友用戶可以刪除好友;用戶可以將好友放在多個組中;用戶的好友一

27、次只能屬于一個組。狀態(tài)切換需求用戶可以選擇登錄狀態(tài);登錄完成后用戶可以切換狀態(tài)(在線,隱身);用戶可以注銷登錄。查看在線好友需求用戶登錄時列出所有在線好友;用戶可以看到新近登錄的好友;用戶將不在看到臨時登出的好友。 系統(tǒng)設計 方案論證“即時”技術的選擇聊天系統(tǒng)實現(xiàn)的關鍵在于其實時的特性,包括狀態(tài)的實時改變,消息的實時收發(fā),狀態(tài)的實時切換等,而傳統(tǒng)的Web應用采用同步交互過程,這種情況下,用戶首先向Web服務器發(fā)送一個請求,然后Web服務器根據(jù)用戶請求的內(nèi)容,執(zhí)行相應的任務,并向用戶返回結(jié)果。這是一種不連貫的用戶體驗,在服務器處理請求時,用戶只能等待,此時瀏覽器顯示的頁面是空白的,這也就是通常所

28、說的“白屏”現(xiàn)象,應用此種技術肯定實現(xiàn)不了即時通訊所要求的效果。所以就需要尋求一種新的技術來實現(xiàn)本系統(tǒng)所要求的即時的效果,而Ajax恰好彌補了Web應用的這一缺點。與傳統(tǒng)的Web應用不同,Ajax采用了異步交互的方式。它在用戶和服務器之間引入了一個中間媒介,從而改變了同步交互過程中的“處理-等待-處理-等待”模式。用戶的瀏覽器在執(zhí)行任務時即裝載了Ajax引擎。該引擎是用JavaScript語言編寫的,通常位于一個隱藏的框架中,負責轉(zhuǎn)發(fā)用戶界面和服務器之間的交互。Ajax引擎允許用戶和應用系統(tǒng)之間的交互以異步的方式進行,獨立于用戶與Web服務器之間的交互?,F(xiàn)在,可以通過Ajax引擎向Web服務器

29、發(fā)送請求。所以本系統(tǒng)決定采用Ajax來實現(xiàn)即時通訊各個部分“即時”效果的實現(xiàn)。使用Ajax可以帶來的好處有以下幾個方面:1減輕服務器的負擔。Ajax的原則是“按需取數(shù)據(jù)”,可以最大程度地減少冗余請求,減輕服務器的負擔。2無需刷新頁面,減少用戶心理和實際的等待時間。特別是在讀取大量數(shù)據(jù)時,不會像刷新頁面那樣出現(xiàn)白屏的情況,Ajax使用XMLHttpRequest對象發(fā)送請求并且得到服務器響應,在不重新載入整個頁面的情況下,用JavaScript操作DOM更新頁面。因此在讀取數(shù)據(jù)的過程中,用戶所面對的不是白屏,是原來的頁面內(nèi)容,只有在數(shù)據(jù)接收完畢后才更新相應部分的內(nèi)容。這種更新是瞬間的,用戶幾乎感

30、覺不到。3帶來更好的用戶體驗。4可以把以前一些服務器負擔的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務器負擔,充分利用寬帶資源,節(jié)約空間和寬帶租用成本。5可以調(diào)用外部數(shù)據(jù)。6基于標準化的并廣泛支持的技術,不需要下載插件或者小程序。7進一步促進頁面呈現(xiàn)與數(shù)據(jù)的分離。 web-msn的模型選擇即時通訊系統(tǒng)的一般模型即時通訊服務有兩個實體:發(fā)送者和即時收信箱。即時通訊協(xié)議定義了即時通訊服務、發(fā)信者和即時收信箱之間的交互作用。即時通訊服務與其他郵件服務不同之處在于,即時消息本身足夠的小,便于快速交付到即時收件箱。個體,用戶代理,即時通訊系統(tǒng)的模型如圖4-1表示:圖4-1 即時通訊系統(tǒng)的一般模

31、型即時通訊系統(tǒng)模型發(fā)信者或者即時收信箱的身份鑒別。不同的收信箱有不同的身份鑒別需求。不同的旁觀者有不同的身份鑒別的需求。服務內(nèi)部可能存在多服務器或者多代理服務器。也就是說一個即時通訊服務的邏輯的連接,內(nèi)部可能有復雜的重定向和代理結(jié)構。代理服務器即時收信箱的身份與其他服務器交換即時消息。服務并不需要一個服務器,可以通過發(fā)信者和即時收信箱之間的直接通訊實現(xiàn)。涉及與其他即時通訊服務的情況,可能會有定的內(nèi)部機制。個體還可以通過收件箱用戶代理設置交付規(guī)則(Delivery Rules)限制即時通訊服務把即時信息交付到即時收信箱。即時通訊系統(tǒng)服務拓撲模型現(xiàn)在不少即時通訊系統(tǒng)服務的內(nèi)部拓撲中采用模式一;也有

32、極其個別系統(tǒng)在即時通訊服務上面采用模式二。模式一是一種非常成熟的模式,大多數(shù)TCP/IP應用系統(tǒng),例如SMTP服務、DNS服務、WWW服務等都是使用這種模式。模式二,對于模式一是一個技術上的修正,雖然這個修正帶來了新的問題,但是其實用性是不可質(zhì)疑的;WEB-MSN正是實用模式二作為服務模式;web-msn的服務是由服務器構成的;web-msn中每個實體都由一個寄主服務器管理。個體必須向服務器注冊,注冊后就有可以控制的發(fā)信者和即時收件箱。發(fā)信者是獨立于即時通訊服務外的實體,而即時收信箱則存在于寄主服務器中。WEB-MSN的通訊系統(tǒng)中只有存在發(fā)送者和接收者兩類實體。注冊后的用戶必須在服務器上建立登

33、記表,才能知道其他用戶的存在,與其他用戶進行交流。S1S3S2C1C2C3客戶端服務器星型結(jié)構服務器服務器對等結(jié)構模式一S1S3S2C1C2C3客戶端服務器星型結(jié)構服務器服務器對等結(jié)構客戶端客戶機對等結(jié)構模式二CS服務器客戶端客戶端客戶端連接客戶端服務器連接服務器服務器連接圖4-2 即時通訊系統(tǒng)服務模型 數(shù)據(jù)庫設計數(shù)據(jù)表設計設計數(shù)據(jù)庫應該具備數(shù)據(jù)庫的基本知識和數(shù)據(jù)庫設計技術,計算機科學的基礎知識和程序設計的方法和技巧及軟件工程的原理和方法應用領域的知識。根據(jù)本系統(tǒng)的特點和要求,通過對整個系統(tǒng)運行過程和數(shù)據(jù)流程分析,得出本系統(tǒng)的實體表:用戶信息表:users ;聊天信息數(shù)據(jù)表:message ;

34、users變化監(jiān)控表:global_info 。經(jīng)過數(shù)據(jù)庫分析與設計得到數(shù)據(jù)庫的邏輯結(jié)構。本系統(tǒng)使用Microsoft SQL Server 2000為數(shù)據(jù)庫開發(fā)工具;創(chuàng)建名為msn數(shù)據(jù)庫根據(jù)各種功能的實現(xiàn)以及考慮到將來系統(tǒng)功能上的擴展,設計如下數(shù)據(jù)項和數(shù)據(jù)結(jié)構:表4-1 用戶信息數(shù)據(jù)表:users中文名稱字段名字段類型字段長度是否允許為空備注登錄名usernamevarchar50not null主鍵用戶昵稱nicknamevarchar50null密碼passwordvarchar50not null登錄狀態(tài)statusint4not null最后登錄時間logintimedatetime

35、8null最后注銷時間logouttimedatetime8null最后消息編號last_msg_idint4not null 表4-2 聊天信息數(shù)據(jù)表:message中文名稱字段名字段類型字段長度是否允許為空備注消息編號msg_idint4not null主鍵發(fā)送者用戶名sendervarchar50not null接受者用戶名receivervarchar50not null消息內(nèi)容contentvarchar255not null發(fā)送時間sendtimedatetime8not null 表4-3 users變化監(jiān)控表:global_info中文名稱字段名字段類型字段長度是否允許為空備注

36、存儲過程設計為了提高執(zhí)行效率,并且簡化數(shù)據(jù)庫訪問的復雜程度,本系統(tǒng)設計了相應的存儲過程完成基本的數(shù)據(jù)庫相關功能。根據(jù)對本系統(tǒng)的分析共創(chuàng)建了5個基本的存儲過程:用戶登錄存儲過程:UserLogin ;用戶注銷存儲過程:UserLogout;發(fā)送消息存儲過程:SendMessage ;最近聊天記錄存儲過程:GetRecentMsg ;獲取最新消息存儲過程:GetNewMessage。用戶登錄存儲過程UserLogin實現(xiàn)用戶的登錄功能,如果成功登錄則返回0,反之則返回1;用戶注銷存儲過程UserLogout實現(xiàn)用戶的登出功能,如果成功登出則返回0,反之則返回1;發(fā)送消息存儲過程SendMessag

37、e 首先對發(fā)送者和接收者的用戶名進行檢查,然后再插入新的聊天記錄;最近聊天記錄存儲過程:GetRecentMsg 的作用是返回最近兩個用戶之間的聊天記錄;獲取最新消息存儲過程GetNewMessage 根據(jù)數(shù)據(jù)庫message表中的msg_id字段判斷哪些是新消息,凡是消息ID大于msg_id字段的均是新消息。 系統(tǒng)功能分析與設計本系統(tǒng)的主要任務是提供用戶之間實時的交流,方便用戶之間相互的溝通。系統(tǒng)登錄。登錄模塊采用基于標準的MVC架構的開發(fā)模式。與一般的登錄系統(tǒng)相似,主要是對登錄用戶的身份進行合法性驗證。登錄狀態(tài)分為兩種:在線、隱身。根據(jù)自己的需求選擇登錄方式。登錄狀態(tài)切換。當用戶登錄后還可

38、以重新選擇登錄狀態(tài),通過選擇下拉列表的選項可以切換用戶的登錄狀態(tài)是在線或者隱身。或者單擊“注銷”按鈕,將注銷用戶的登錄。用戶列表查看。當用戶登錄成功后,系統(tǒng)將顯示給用戶他的所有在線好友,并且實時的更新用戶列表:當有好友登錄后將即時的顯示在用戶列表中;當有好友臨時退出系統(tǒng)后將在用戶列表中消失。消息提示。我們設計了一個類似于MSN提示框的小窗口,定時的檢查是否有新消息,如果有的話彈出這個窗口,用戶可以即時回復消息。查看近期消息。當加載消息發(fā)送頁面的時候,會首先加載若干條近期的聊天記錄,幫助用戶回顧以往的聊天內(nèi)容。發(fā)送消息。用戶選擇發(fā)送對象后,直接進行發(fā)送。接收消息。在消息發(fā)送后接收者能夠?qū)崟r接收消

39、息。 根據(jù)需求分析和功能說明,開始系統(tǒng)的圖形化建模,本系統(tǒng)的功能說明圖4-3所示:圖4-3 系統(tǒng)功能說明圖 web-msn即時通訊系統(tǒng)執(zhí)行者Client:web-msn登錄端,使用web-msn進行即時通訊的人Server:web-msn服務端,對用戶進行注冊、登錄、資料管理的角色DBServer:web-msn數(shù)據(jù)庫服務器,保存用戶數(shù)據(jù)的角色MsgSender:端對端傳輸消息或這文件時的發(fā)送端MsgReceiver:端對端傳輸消息或者文件時的接受端其中,MsgSender和MsgReceiver從屬于Clientweb-msn即時通訊系統(tǒng)用例說明注冊:使用者通過注冊成為web-msn用戶;登

40、錄:連接服務器獲得服務;更改狀態(tài):更改自己在服務器的狀態(tài),狀態(tài)分為:在線、隱身;更改資料:更改自己的資料并保存在數(shù)據(jù)庫服務器;查找好友:從服務器獲得好友信息;傳輸信息:傳送文本信息或者富文本信息給好友;退出系統(tǒng):從服務器退出,取消服務; 系統(tǒng)模塊設計注冊模塊 圖4-4 注冊用例圖注冊用例圖用例說明:填寫注冊信息檢查信息格式新注冊申請傳輸注冊數(shù)據(jù)生成新帳號添加新用戶命令在數(shù)據(jù)庫中添加新用戶登錄模塊圖4-5 登錄用例圖登錄用例圖用例說明:輸入登錄信息發(fā)送登錄請求驗證登錄信息傳輸好友列表刷新在線用戶列表通知好友上線改變好友狀態(tài)讀取用戶數(shù)據(jù)命令從數(shù)據(jù)庫中讀取用戶信息傳輸信息模塊 圖4-6 傳輸信息用例

41、圖在線傳輸信息用例圖用例:選擇發(fā)送內(nèi)容傳輸信息顯示信息退出系統(tǒng)模塊 圖4-7 退出系統(tǒng)用例圖退出系統(tǒng)用例退出web-msn發(fā)送退出消息刷新在線用戶列表通知好友下線改變好友狀態(tài)更改用戶狀態(tài)命令在數(shù)據(jù)庫中更改用戶狀態(tài)數(shù)據(jù) 系統(tǒng)實現(xiàn) 發(fā)送消息功能實現(xiàn)為了實現(xiàn)發(fā)送消息的功能,在服務器端代碼中需要定義Ajax方法SendMessage,具體代碼如下: AjaxMethod()public void SendMessage(string strUsername, string strContent)/ 數(shù)據(jù)連接SqlConnection conn = new SqlConnection(Configura

42、tionSettings.AppSettingsConnStr);/ SQL命令SqlCommand cmd = conn.CreateCommand();cmd mandText = string.Format(SendMessage 0,1, 2,User.Identity.Name, strUsername, strContent);try/ 打開數(shù)據(jù)連接conn.Open();/ 執(zhí)行SQL,發(fā)送消息cmd.ExecuteNonQuery();catch (SqlException)finally/ 關閉連接conn.Close();然后在客戶端編寫getMessage函數(shù),調(diào)用服務器

43、Ajax方法進行消息的發(fā)送。/ 發(fā)送消息function sendMessage()/ 消息內(nèi)容輸入框var ta_content = el(content);/ 如果輸入內(nèi)容不為空if (ta_content.value.length 0)/ 消息顯示區(qū)域 var div_recentMsg = el(recentMsg);/ 用戶名var username = document.location.search.split(=)1;/ 發(fā)送消息ch111.SendMsg.SendMessage(username, ta_content.value);/ 清空輸入框ta_content.val

44、ue = ;/ 頁面跟隨輸入框滾動ta_content.scrollIntoView(false);/ 獲取新消息getNewMessage();getMessage函數(shù)的代碼如下: 接收消息功能實現(xiàn)為了實現(xiàn)接收消息的功能,在服務器端代碼中需要定義Ajax方法GetNewMessage,具體代碼如下:AjaxMethod()public DataSet GetNewMessage()/ 返回的數(shù)據(jù)集DataSet ds = new DataSet();/ 數(shù)據(jù)連接SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSe

45、ttingsConnStr);/ SQL命令SqlCommand cmd = conn.CreateCommand();/ 數(shù)據(jù)適配器SqlDataAdapter da = new SqlDataAdapter(cmd);try/ 向DataSet中填充消息數(shù)據(jù)da.Fill(ds); try/ 向DataSet中填充消息數(shù)據(jù)da.Fill(ds);catch (SqlException)finally/ 關閉連接conn.Close();return ds;然后在客戶端編寫getNewMessage函數(shù),調(diào)用服務器Ajax方法進行消息的發(fā)送。getNewMessage函數(shù)的代碼如下:func

46、tion getNewMessage()/ 用戶名var username = document.location.search.split(=)1;/ 消息顯示區(qū)域var div_recentMsg = el(recentMsg);/ 獲取最新消息的數(shù)據(jù)表var dt = ch111.SendMsg.GetNewMessage().value.Tables0;for (var i = 0;i dt.Rows.length;i+) / 一條消息對應與一個對象 var oneMsg = document.createElement(span);/ 消息發(fā)送者與發(fā)送對象 var strLine1

47、= dt.Rowsi.sender + 說: ( + dt.Rowsi.sendtime + );strLine1 = DealBrackets(strLine1);/ 消息內(nèi)容 var strLine2 = dt.Rowsi.content;strLine2 = DealBrackets(strLine2);/ 顯示樣式oneMsg.innerHTML = + strLine1 + + strLine2 + ; oneMsg.style.padding = 2px 2px 2px 2px;oneMsg.style.color = (dt.Rowsi.sender = username) ?

48、blue : red;oneMsg.style.fontFamily = Courier New , 宋體;/ 附加到DOMdiv_recentMsg.appendChild(oneMsg); / 主進程循環(huán)function mainLoop()/ 獲取新消息getNewMessage();/ 每隔1秒檢查一次setTimeout(mainLoop(), 1000);/ 顯示最近的消息getRecentMsg();/ 定時更新消息列表mainLoop(); 測試由于開發(fā)占據(jù)了我大部分的精力和時間,平時所作的測試也就是一些手工的調(diào)試和邊界的黑盒測試,在這里只是列舉我測試的一些范圍,不做詳細描敘。

49、 測試內(nèi)容 1注冊功能測試; 2在線好友實時更新測試3發(fā)送消息功能測試;4查看近期消息功能測試;5接收消息功能測試。 測試結(jié)果以上的測試案例是單獨進行測試的,還需要進一步的交叉案例測試。通過以上簡單測試說明了設計方法的正確性,它已經(jīng)初步符合了即時通訊系統(tǒng)的基本要求即時,具有良好的檢測性能和準確的檢測結(jié)果。但系統(tǒng)構架和代碼設計還需要進一步優(yōu)化,以提高系統(tǒng)的運行效率,降低所耗的系統(tǒng)資源,為用戶提供更好的服務。結(jié) 論本次對即時通訊的課題研究涉及到了即時通訊協(xié)議的定制;即時通訊服務模式的探討; web-msn系統(tǒng)建模、設計到實現(xiàn)的一系列過程,重點講敘了Ajax 新技術的使用等知識,也介紹了相關的社會科

50、學理論以及與即時通訊軟件的緊密結(jié)合,縱觀即時通訊事業(yè)的壯大和發(fā)展,即時通訊的服務功能將會越來越豐富和完善,并必將更加深入地滲透到我們的日常生活中來,及時的研究即時通訊技術,無論是對我們的研究還是生活,都將帶來相當大的影響。由于時間的限制以及本能能力所及,web-msn的各種功能還只是處于初步實現(xiàn)階段,在接下來的時間里,如果有機會的話,我將進一步的深入和拓展web-msn的功能。下一步web-msn的發(fā)展將會重點放在某一個領域,比如說教育業(yè),然后將此領域的相關特色與web-msn的功能緊密結(jié)合,做成一個專業(yè)的即時通訊軟件。參考文獻1 劉曉華.精通.NET核心技術M. 北京:電子工業(yè)出版社,200

51、2。2 馬軍. 精通ASP.NET2.0網(wǎng)絡應用系統(tǒng)開發(fā)M.北京:人民郵電出版社,2006。3 馬萬寶. ASP.NET技術詳解與應用實例M. 北京:兵器工業(yè)出版社,2006。4 施偉偉,張蓓. 征服Ajax Web 2.0快速入門與項目實踐M. 北京:人民郵電出版社,2006。5 夏慧軍,魏雪輝. 深入淺出AjaxM. 北京:電子工業(yè)出版社,2006。6 方睿,刁仁宏,吳四九等. 網(wǎng)絡數(shù)據(jù)庫原理及應用M. 成都:四川大學出版社,2005。7 龍帥. 深入淺出SQL SERVER數(shù)據(jù)庫開發(fā)M. 北京:中國青年出版社,2006。 附 錄圖1 登錄界面 圖2 注冊界面 圖2 登錄后主界面圖3 即時

52、彈出信息窗口圖4 聊天窗口致 謝本文是在陳麟和刁仁宏老師的熱情關心和指導下完成的,他們淵博的知識和嚴謹?shù)闹螌W作風使我受益匪淺,對順利完成本課題起到了極大的作用。在此向他表示我最衷心的感謝!在論文完成過程中,本人還得到了陳發(fā)仁、蔡航標同學的熱心幫助,本人向他們表示深深的謝意!最后向在百忙之中評審本文的各位專家、老師表示衷心的感謝!作者簡介:姓 名:王亞平 性別:男 出生年月:1984年5月 民族:漢E-mail:cuitw126 聲 明本論文的工作是 2007年2月至2007年6月在成都信息工程學院 網(wǎng)絡工程系完成的。文中除了特別加以標注地方外,不包含他人已經(jīng)發(fā)表或撰寫過的研究成果,也不包含為獲

53、得成都信息工程學院或其他教學機構的學位或證書而使用過的材料。除非另有說明,本文的工作是原始性工作。關于學位論文使用權和研究成果知識產(chǎn)權的說明:本人完全了解成都信息工程學院有關保管使用學位論文的規(guī)定,其中包括:(1)學校有權保管并向有關部門遞交學位論文的原件與復印件。(2)學校可以采用影印、縮印或其他復制方式保存學位論文。(3)學??梢詫W術交流為目的復制、贈送和交換學位論文。(4)學校可允許學位論文被查閱或借閱。(5)學??梢怨紝W位論文的全部或部分內(nèi)容(保密學位論文在解密后遵守此規(guī)定)。除非另有科研合同和其他法律文書的制約,本論文的科研成果屬于成都信息工程學院。特此聲明!畢業(yè)設計(論文)基于B

54、/S方式的即時通訊軟件的設計與實現(xiàn)論文作者姓名:申請學位專業(yè):申請學位類別:指導教師姓名(職稱):論文提交日期:基于B/S方式的即時通訊軟件的設計與實現(xiàn)摘 要即時通訊(Instant Messaging)是目前Internet上最為流行的通訊方式,而各種各樣的即時通訊軟件也層出不窮;服務提供商也提供了越來越豐富的通訊服務功能。隨著互聯(lián)網(wǎng)的發(fā)展,即時通訊的運用將日益廣泛,即時通訊軟件業(yè)方興未艾。本文首先描述了即時通訊業(yè)的發(fā)展和現(xiàn)狀,然后初步探討了即時通訊所涉及到的一些技術,最后對現(xiàn)有的技術進行了對比和分析,提出了一些可能的改進方案,并且設計了一個名為web-msn的即時通訊系統(tǒng)。 web-msn

55、是基于B/S的模式的即時通訊系統(tǒng),通過IE等瀏覽器直接完成客戶端的登錄、數(shù)據(jù)傳輸,更加便捷了用戶之間的通訊和交友;使用最新的Ajax技術,使其非???,無需等待頁面的刷新,實現(xiàn)了即時通訊的功能。 在系統(tǒng)設計與建模過程中,使用了UML和面向?qū)ο蟮姆治?、設計方法,本系統(tǒng)基于.NET Framework 1.1,使用Visual Studio .NET 2003作為開發(fā)工具,將.NET中的一些新技術運用到了系統(tǒng)中;在開發(fā)過程中用到了時下流行的重構開發(fā)方法,優(yōu)化了系統(tǒng)的設計。 關鍵詞:Web-msn;即時通訊;B/S; AjaxThe Design and Implementation of Insta

56、nt Message Based on B/SAbstractInstant message is currently the most popular way to communicate on the Internet,by the way various instant message software have been continuously appearing; service provider offers more and more communication services nowadays. As the development of the Internet, ins

57、tant message will be more widely used than before. This article first describes the development and the current status of the instant message. Then it discusses the technologies of the instant message such as communication protocol, service mode and friend-making mode. It makes a comparison and anal

58、ysis with respect to the current technology and also provides some possible solutions for improvement. At last it designs and develops an instant message system named web-msn.The web-msn system is an instant message system which bases on b/s mode. You can login and interact with it through IE. It ma

59、kes communication and finding friends more conveniently. It is designed using Ajax, which doesnt need to wait for refreshing page, so carry out communication instantly.This system is based on .NET Framework 1.1 and uses Visual Studio .NET 2003 as the development tool. It accumulated some new technol

60、ogy in .NET into our system. During the process of development, it used the popular reconstruction development method, which optimizes the system design.Key words: Web-msn; Instant Message; B/S; Ajax目 錄 論文總頁數(shù):24頁 TOC o 1-3 h z u HYPERLINK l _Toc169514637 1 引言 PAGEREF _Toc169514637 h 1 HYPERLINK l _T

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論