




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、基于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是基于b/s的模式的即時通訊系統(tǒng),通過ie等瀏覽器直接完成客戶端的登錄、數(shù)據(jù)傳輸,更加便捷了用戶之間的通訊和交友
2、;使用最新的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 instant message based on b/sabstractinstant message is curren
3、tly 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, instant message will be more widely used than before. this
4、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 analysis with respect to the current technology and also pro
5、vides 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 makes communication and finding friends more conveniently.
6、 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 technology in .net into our system. during the process of devel
7、opment, it used the popular reconstruction development method, which optimizes the system design.key words: web-msn; instant message; b/s; ajax目 錄 論文總頁數(shù):24頁1 引言12 系統(tǒng)分析22.1 課題目的22.2 課題意義22.3 應解決的問題22.4 需要實現(xiàn)的功能22.5 開發(fā)環(huán)境22.5.1 vs2003開發(fā)環(huán)境介紹22.5.2 sql server 2000介紹32.5.3 c#語言介紹32.6 關鍵技術-ajax簡介33 需求分析33.1
8、 即時消息的一般需求33.2 即時通訊系統(tǒng)需求44 系統(tǒng)設計54.1 方案論證54.1.1 “即時”技術的選擇54.1.2 web-msn的模型選擇64.2 數(shù)據(jù)庫設計84.2.1 數(shù)據(jù)表設計84.2.2 存儲過程設計84.3 系統(tǒng)功能分析與設計94.4 系統(tǒng)模塊設計114.4.1 注冊模塊114.4.2 登錄模塊114.4.3 傳輸信息模塊124.4.4 退出系統(tǒng)模塊135 系統(tǒng)實現(xiàn)145.1 發(fā)送消息功能實現(xiàn)145.2 接收消息功能實現(xiàn)156 測試176.1 測試內(nèi)容176.2 測試結果17結 論18參考文獻19附 錄20致 謝23聲 明24 1 引言即時通訊軟件,幾乎是每一個上網(wǎng)用戶都必
9、備的聯(lián)絡工具。即時通訊軟件除了能夠讓您迅速地在網(wǎng)上找到自己的朋友和工作伙伴,還可以實時交談和傳遞信息,而且,現(xiàn)在不少即時通訊軟件還集成了文件共享、語音聊天、網(wǎng)絡會議等功能。截止到目前,全球約有近3億多人使用即時通訊軟件進行交流,正因為即時通訊軟件擁有數(shù)以億計的用戶和迅速增長的市場,所以各個公司都盯上了中國這個潛在的最大市場,一時間,即時通訊市場硝煙四起。除了騰訊qq和國外的幾款著名即時通訊軟件紛紛推出新版本,網(wǎng)易也推出了一種新的即時通訊軟件網(wǎng)易泡泡。朗瑪公司也推出了名為uc的通訊工具。即時通訊軟件最早發(fā)布于1996年11月15日,以色列特拉維文的mirabilis ltd.發(fā)表了一個題為e.t
10、 surf home:mirabilis ltd. provides new solutions 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,開通騰訊即時通訊服
11、務。2000年5月,騰訊qq同時在線用戶突破10萬;2001年2月l0日,騰訊qq同時在線用戶突破100萬。2004年4月份騰訊qq同時在線人數(shù)最高記錄已經(jīng)突破了600萬大關,現(xiàn)在騰訊公司正在把即時通訊系統(tǒng)往移動通訊方向擴展,如今已經(jīng)將即時通訊與手機短信息(sms)成功結合起來。即時通訊軟件涉及和影響的領域已近越來越廣,其競爭也越來越激烈。國內(nèi)qq最大的敵手朗瑪uc從2001年開始研發(fā),2002年的12月份uc正式發(fā)布,并且首創(chuàng)了很多技術:uc是國內(nèi)第一個做場景聊天的;uc是第一個把同學錄和校友錄結合的;第一個把即時通訊與休閑游戲相結合的;第一個把發(fā)送動畫與即時通訊相結合的。在一年的發(fā)展里,u
12、c一度達到峰值在線30萬人,注冊用戶達到7000萬。但是縱觀這些即時通訊軟件業(yè),都是基于c/s模式的,需要下載客戶端進行安裝,用戶名、密碼、聊天記錄等也是存放在本地機器上,在安全性和方便性上都有所欠缺。設計并開發(fā)一個基于web的即時通訊平臺,對于現(xiàn)階段的學習和研究,都是極為有意義的,基于這個前提和起因,我選擇了基于b/s方式的即時通訊軟件的設計與實現(xiàn)作為我的畢業(yè)設計。2 系統(tǒng)分析2.1 課題目的設計一個基于b/s模式的im軟件,可以通過ie等瀏覽器直接完成客戶端的登錄、數(shù)據(jù)傳輸、好友信息分組管理、狀態(tài)更新、兩人以及多人的文字聊天等功能。2.2 課題意義作為計算機專業(yè)的學生,即時了解和掌握流行的
13、即時通訊機制并且應用到實踐過程中,將極大的提高自己的設計和開發(fā)軟件的積極性;提升自己的理論和技術水平,跟蹤國內(nèi)外最新的技術和開發(fā)模式,為以后類似的開發(fā)積累經(jīng)驗;同時,開發(fā)出來的作品也可以真正運用到實際當中,方便大家的溝通和交流。2.3 應解決的問題1) 服務系統(tǒng)模型的選擇;2) 實時查看在線好友列表;3) 向在線好友發(fā)送即時消息;4) 實時接收在線消息并且彈出提示;5) 狀態(tài)的即使切換(在線,隱身等)。2.4 需要實現(xiàn)的功能1) 實現(xiàn)用戶注冊、登錄、退出、更改狀態(tài)等功能;2) 實現(xiàn)文本信息發(fā)送;3) 實現(xiàn)搜索好友,添加好友,刪除好友技術;4) 實現(xiàn)消息的提示功能;5) 實現(xiàn)設置好友權限功能。2
14、.5 開發(fā)環(huán)境2.5.1 vs2003開發(fā)環(huán)境介紹 visual studio是微軟公司出品的一款大型應用軟件,是一套完整的開發(fā)工具集,它主要用于生成asp.net web應用程序、xml web 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ā)
15、工具和asp.net。visual studio 2003的集成開發(fā)環(huán)境中為開發(fā)人員提供了大量的實用工具以提高工作效率。這些工具包括了自動編譯、項目創(chuàng)建向?qū)?、?chuàng)建部署工程等。2.5.2 sql server 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程序設計模型與windo
16、wsdna構架集成,用以開發(fā)web應用程序,并且sql server2000支持englishquery和 microsoft搜索服務等功能,在web應用程序中包含了用戶友好的查詢和強大的搜索功能。2.5.3 c#語言介紹c#是一種語言,它是專門為了微軟的.net戰(zhàn)略而設計的一種語言. c#也叫c#.net。2.6 關鍵技術-ajax簡介ajax 是異步javascript和xml(asynchronous javascript and xml)的英文縮寫?!癮jax”這個名詞的發(fā)明人是jesse james garrett,而大力推廣并且使ajax技術炙手可熱的是google。google發(fā)
17、布的gmail,google suggest等應用最終讓人們了解了什么是ajax。ajax的核心理念在于使用xmlhttprequest對象發(fā)送異步請求,最初為xmlhttprequest對象提供瀏覽器支持的微軟公司。早在1998年,微軟公司開發(fā)web版outlook時,就已經(jīng)以activex控件的方式為xmlhttprequest提供了支持。ajax是使用客戶端腳本與web服務器交換數(shù)據(jù)的web應用開發(fā)方法。這樣,web頁面不用打斷交互流程進行重新加裁,就可以動態(tài)地更新。使用ajax,用戶可以創(chuàng)建接近本地桌面應用的直接、高可用、更豐富、更動態(tài)的web用戶界面。實際上,ajax不是一種技術,而
18、是幾種技術。每種技術都具有獨特之處,合在一起就形成了一個功能強大的新技術。ajax包括:1) xhtml和css;2) 使用文檔對象模型進行動態(tài)顯示和交互;3) 使用xml和xslt進行數(shù)據(jù)交互和操作;4) 使用xmlhttprequest進行異步數(shù)據(jù)接收;5) 使用javascript將它們綁定在一起。 3 需求分析3.1 即時消息的一般需求1) 一般即時消息格式需求:所有實體必須至少使用一種消息格式;一般即時消息格式必須定義發(fā)信者和即時收件箱的標識;一般即時消息格式必須包含一個讓接收者可以回消息的地址;一般即時消息格式應該包含其他通訊方法和聯(lián)系地址,例如電話號碼,郵件地;一般即時信息格式必
19、須允許對信息有效負載的編碼和鑒別(非ascii內(nèi)容);一般即時信息格式必須反映當前最好的國際化實踐;一般即時信息格式必須反映當前最好的可用性實踐;必須存在方法,在擴展一般即時消息格式的時候,不影響原有的域;必須提供擴展和注冊即時消息格式的模式的機制。2) 可靠性需求 協(xié)議必須存在機制,保證即時消息成功投遞或者投遞失敗的時候,發(fā)信者獲得足夠的信息。3) 性能需求即時消息的傳輸必須足夠的迅速;即時消息的內(nèi)容必須足夠豐富;即時消息的長度盡量足夠的長。3.2 即時通訊系統(tǒng)需求1) 注冊需求即時通訊系統(tǒng)允許多個用戶注冊;一個用戶可以注冊多個id;注冊所使用的帳號類型為數(shù)字或者字母;注冊新用戶時必須填寫符
20、合要求的信息。2) 通訊需求 用戶可以傳輸文本消息;用戶的消息可以中轉(zhuǎn)至服務器;用戶可以從服務器獲取中轉(zhuǎn)的好友消息;3) 好友管理需求用戶可以查詢好友;用戶可以添加好友;用戶可以添加多個人為好友,一個用戶可以被多個人添加為好友用戶可以刪除好友;用戶可以將好友放在多個組中;用戶的好友一次只能屬于一個組。4) 狀態(tài)切換需求用戶可以選擇登錄狀態(tài);登錄完成后用戶可以切換狀態(tài)(在線,隱身);用戶可以注銷登錄。5) 查看在線好友需求用戶登錄時列出所有在線好友;用戶可以看到新近登錄的好友;用戶將不在看到臨時登出的好友。4 系統(tǒng)設計4.1 方案論證4.1.1 “即時”技術的選擇聊天系統(tǒng)實現(xiàn)的關鍵在于其實時的特
21、性,包括狀態(tài)的實時改變,消息的實時收發(fā),狀態(tài)的實時切換等,而傳統(tǒng)的web應用采用同步交互過程,這種情況下,用戶首先向web服務器發(fā)送一個請求,然后web服務器根據(jù)用戶請求的內(nèi)容,執(zhí)行相應的任務,并向用戶返回結果。這是一種不連貫的用戶體驗,在服務器處理請求時,用戶只能等待,此時瀏覽器顯示的頁面是空白的,這也就是通常所說的“白屏”現(xiàn)象,應用此種技術肯定實現(xiàn)不了即時通訊所要求的效果。所以就需要尋求一種新的技術來實現(xiàn)本系統(tǒng)所要求的即時的效果,而ajax恰好彌補了web應用的這一缺點。與傳統(tǒng)的web應用不同,ajax采用了異步交互的方式。它在用戶和服務器之間引入了一個中間媒介,從而改變了同步交互過程中的
22、“處理-等待-處理-等待”模式。用戶的瀏覽器在執(zhí)行任務時即裝載了ajax引擎。該引擎是用javascript語言編寫的,通常位于一個隱藏的框架中,負責轉(zhuǎn)發(fā)用戶界面和服務器之間的交互。ajax引擎允許用戶和應用系統(tǒng)之間的交互以異步的方式進行,獨立于用戶與web服務器之間的交互?,F(xiàn)在,可以通過ajax引擎向web服務器發(fā)送請求。所以本系統(tǒng)決定采用ajax來實現(xiàn)即時通訊各個部分“即時”效果的實現(xiàn)。使用ajax可以帶來的好處有以下幾個方面:1減輕服務器的負擔。ajax的原則是“按需取數(shù)據(jù)”,可以最大程度地減少冗余請求,減輕服務器的負擔。2無需刷新頁面,減少用戶心理和實際的等待時間。特別是在讀取大量數(shù)據(jù)
23、時,不會像刷新頁面那樣出現(xiàn)白屏的情況,ajax使用xmlhttprequest對象發(fā)送請求并且得到服務器響應,在不重新載入整個頁面的情況下,用javascript操作dom更新頁面。因此在讀取數(shù)據(jù)的過程中,用戶所面對的不是白屏,是原來的頁面內(nèi)容,只有在數(shù)據(jù)接收完畢后才更新相應部分的內(nèi)容。這種更新是瞬間的,用戶幾乎感覺不到。3帶來更好的用戶體驗。4可以把以前一些服務器負擔的工作轉(zhuǎn)嫁到客戶端,利用客戶端閑置的能力來處理,減輕服務器負擔,充分利用寬帶資源,節(jié)約空間和寬帶租用成本。5可以調(diào)用外部數(shù)據(jù)。6基于標準化的并廣泛支持的技術,不需要下載插件或者小程序。7進一步促進頁面呈現(xiàn)與數(shù)據(jù)的分離。4.1.2
24、 web-msn的模型選擇1) 即時通訊系統(tǒng)的一般模型即時通訊服務有兩個實體:發(fā)送者和即時收信箱。即時通訊協(xié)議定義了即時通訊服務、發(fā)信者和即時收信箱之間的交互作用。即時通訊服務與其他郵件服務不同之處在于,即時消息本身足夠的小,便于快速交付到即時收件箱。個體,用戶代理,即時通訊系統(tǒng)的模型如圖4-1表示:即時通訊系統(tǒng)模型發(fā)信者或者即時收信箱的身份鑒別。不同的收信箱有不同的身份鑒別需求。不同的旁觀者有不同的身份鑒別的需求。服務內(nèi)部可能存在多服務器或者多代理服務器。也就是說一個即時通訊服務的邏輯的連接,內(nèi)部可能有復雜的重定向和代理結構。代理服務器即時收信箱的身份與其他服務器交換即時消息。服務并不需要一
25、個服務器,可以通過發(fā)信者和即時收信箱之間的直接通訊實現(xiàn)。涉及與其他即時通訊服務的情況,可能會有定的內(nèi)部機制。個體還可以通過收件箱用戶代理設置交付規(guī)則(delivery rules)限制即時通訊服務把即時信息交付到即時收信箱。2) 即時通訊系統(tǒng)服務拓撲模型現(xiàn)在不少即時通訊系統(tǒng)服務的內(nèi)部拓撲中采用模式一;也有極其個別系統(tǒng)在即時通訊服務上面采用模式二。模式一是一種非常成熟的模式,大多數(shù)tcp/ip應用系統(tǒng),例如smtp服務、dns服務、www服務等都是使用這種模式。模式二,對于模式一是一個技術上的修正,雖然這個修正帶來了新的問題,但是其實用性是不可質(zhì)疑的;web-msn正是實用模式二作為服務模式;w
26、eb-msn的服務是由服務器構成的;web-msn中每個實體都由一個寄主服務器管理。個體必須向服務器注冊,注冊后就有可以控制的發(fā)信者和即時收件箱。發(fā)信者是獨立于即時通訊服務外的實體,而即時收信箱則存在于寄主服務器中。web-msn的通訊系統(tǒng)中只有存在發(fā)送者和接收者兩類實體。注冊后的用戶必須在服務器上建立登記表,才能知道其他用戶的存在,與其他用戶進行交流。s1s3s2c1c2c3客戶端服務器星型結構服務器服務器對等結構模式一s1s3s2c1c2c3客戶端服務器星型結構服務器服務器對等結構客戶端客戶機對等結構模式二cs服務器客戶端客戶端客戶端連接客戶端服務器連接服務器服務器連接圖4-2 即時通訊系
27、統(tǒng)服務模型4.2 數(shù)據(jù)庫設計4.2.1 數(shù)據(jù)表設計設計數(shù)據(jù)庫應該具備數(shù)據(jù)庫的基本知識和數(shù)據(jù)庫設計技術,計算機科學的基礎知識和程序設計的方法和技巧及軟件工程的原理和方法應用領域的知識。根據(jù)本系統(tǒng)的特點和要求,通過對整個系統(tǒng)運行過程和數(shù)據(jù)流程分析,得出本系統(tǒng)的實體表:用戶信息表:users ;聊天信息數(shù)據(jù)表:message ;users變化監(jiān)控表:global_info 。經(jīng)過數(shù)據(jù)庫分析與設計得到數(shù)據(jù)庫的邏輯結構。本系統(tǒng)使用microsoft sql server 2000為數(shù)據(jù)庫開發(fā)工具;創(chuàng)建名為msn數(shù)據(jù)庫根據(jù)各種功能的實現(xiàn)以及考慮到將來系統(tǒng)功能上的擴展,設計如下數(shù)據(jù)項和數(shù)據(jù)結構:表4-1 用
28、戶信息數(shù)據(jù)表:users中文名稱字段名字段類型字段長度是否允許為空備注登錄名usernamevarchar50not null主鍵用戶昵稱nicknamevarchar50null密碼passwordvarchar50not null登錄狀態(tài)statusint4not null最后登錄時間logintimedatetime8null最后注銷時間logouttimedatetime8null最后消息編號last_msg_idint4not null 表4-2 聊天信息數(shù)據(jù)表:message中文名稱字段名字段類型字段長度是否允許為空備注消息編號msg_idint4not null主鍵發(fā)送者用戶名s
29、endervarchar50not null接受者用戶名receivervarchar50not null消息內(nèi)容contentvarchar255not null發(fā)送時間sendtimedatetime8not null 表4-3 users變化監(jiān)控表:global_info中文名稱字段名字段類型字段長度是否允許為空備注4.2.2 存儲過程設計為了提高執(zhí)行效率,并且簡化數(shù)據(jù)庫訪問的復雜程度,本系統(tǒng)設計了相應的存儲過程完成基本的數(shù)據(jù)庫相關功能。根據(jù)對本系統(tǒng)的分析共創(chuàng)建了5個基本的存儲過程:用戶登錄存儲過程:userlogin ;用戶注銷存儲過程:userlogout;發(fā)送消息存儲過程:send
30、message ;最近聊天記錄存儲過程:getrecentmsg ;獲取最新消息存儲過程:getnewmessage。1 用戶登錄存儲過程userlogin實現(xiàn)用戶的登錄功能,如果成功登錄則返回0,反之則返回1;2 用戶注銷存儲過程userlogout實現(xiàn)用戶的登出功能,如果成功登出則返回0,反之則返回1;3 發(fā)送消息存儲過程sendmessage 首先對發(fā)送者和接收者的用戶名進行檢查,然后再插入新的聊天記錄;4 最近聊天記錄存儲過程:getrecentmsg 的作用是返回最近兩個用戶之間的聊天記錄;5 獲取最新消息存儲過程getnewmessage 根據(jù)數(shù)據(jù)庫message表中的msg_id
31、字段判斷哪些是新消息,凡是消息id大于msg_id字段的均是新消息。4.3 系統(tǒng)功能分析與設計本系統(tǒng)的主要任務是提供用戶之間實時的交流,方便用戶之間相互的溝通。1 系統(tǒng)登錄。登錄模塊采用基于標準的mvc架構的開發(fā)模式。與一般的登錄系統(tǒng)相似,主要是對登錄用戶的身份進行合法性驗證。登錄狀態(tài)分為兩種:在線、隱身。根據(jù)自己的需求選擇登錄方式。2 登錄狀態(tài)切換。當用戶登錄后還可以重新選擇登錄狀態(tài),通過選擇下拉列表的選項可以切換用戶的登錄狀態(tài)是在線或者隱身?;蛘邌螕簟白N”按鈕,將注銷用戶的登錄。3 用戶列表查看。當用戶登錄成功后,系統(tǒng)將顯示給用戶他的所有在線好友,并且實時的更新用戶列表:當有好友登錄后將
32、即時的顯示在用戶列表中;當有好友臨時退出系統(tǒng)后將在用戶列表中消失。4 消息提示。我們設計了一個類似于msn提示框的小窗口,定時的檢查是否有新消息,如果有的話彈出這個窗口,用戶可以即時回復消息。5 查看近期消息。當加載消息發(fā)送頁面的時候,會首先加載若干條近期的聊天記錄,幫助用戶回顧以往的聊天內(nèi)容。6 發(fā)送消息。用戶選擇發(fā)送對象后,直接進行發(fā)送。7 接收消息。在消息發(fā)送后接收者能夠?qū)崟r接收消息。 根據(jù)需求分析和功能說明,開始系統(tǒng)的圖形化建模,本系統(tǒng)的功能說明圖4-3所示:商業(yè)源代碼,全套計算機畢業(yè)設計免費下載 更多全套設計聯(lián)系qq:1042897696最新設計大全 web-msn即時通訊系統(tǒng)執(zhí)行者
33、a) client:web-msn登錄端,使用web-msn進行即時通訊的人b) server:web-msn服務端,對用戶進行注冊、登錄、資料管理的角色c) dbserver:web-msn數(shù)據(jù)庫服務器,保存用戶數(shù)據(jù)的角色d) msgsender:端對端傳輸消息或這文件時的發(fā)送端e) msgreceiver:端對端傳輸消息或者文件時的接受端其中,msgsender和msgreceiver從屬于clientweb-msn即時通訊系統(tǒng)用例說明a) 注冊:使用者通過注冊成為web-msn用戶;b) 登錄:連接服務器獲得服務;c) 更改狀態(tài):更改自己在服務器的狀態(tài),狀態(tài)分為:在線、隱身;d) 更改資
34、料:更改自己的資料并保存在數(shù)據(jù)庫服務器;e) 查找好友:從服務器獲得好友信息;f) 傳輸信息:傳送文本信息或者富文本信息給好友;g) 退出系統(tǒng):從服務器退出,取消服務;4.4 系統(tǒng)模塊設計4.4.1 注冊模塊 圖4-4 注冊用例圖注冊用例圖用例說明:填寫注冊信息檢查信息格式新注冊申請傳輸注冊數(shù)據(jù)生成新帳號添加新用戶命令在數(shù)據(jù)庫中添加新用戶4.4.2 登錄模塊圖4-5 登錄用例圖登錄用例圖用例說明:a) 輸入登錄信息b) 發(fā)送登錄請求c) 驗證登錄信息d) 傳輸好友列表e) 刷新在線用戶列表f) 通知好友上線g) 改變好友狀態(tài)h) 讀取用戶數(shù)據(jù)命令i) 從數(shù)據(jù)庫中讀取用戶信息4.4.3 傳輸信息
35、模塊 圖4-6 傳輸信息用例圖在線傳輸信息用例圖用例:a) 選擇發(fā)送內(nèi)容b) 傳輸信息c) 顯示信息4.4.4 退出系統(tǒng)模塊 圖4-7 退出系統(tǒng)用例圖退出系統(tǒng)用例a) 退出web-msnb) 發(fā)送退出消息c) 刷新在線用戶列表d) 通知好友下線e) 改變好友狀態(tài)f) 更改用戶狀態(tài)命令g) 在數(shù)據(jù)庫中更改用戶狀態(tài)數(shù)據(jù)5 系統(tǒng)實現(xiàn)5.1 發(fā)送消息功能實現(xiàn)為了實現(xiàn)發(fā)送消息的功能,在服務器端代碼中需要定義ajax方法sendmessage,具體代碼如下: ajaxmethod()public void sendmessage(string strusername, string strcontent)
36、/ 數(shù)據(jù)連接sqlconnection conn = new sqlconnection(configurationsettings.appsettingsconnstr);/ sql命令sqlcommand cmd = conn.createcommand();cmd.commandtext = string.format(sendmessage 0,1, 2,user.identity.name, strusername, strcontent);try/ 打開數(shù)據(jù)連接conn.open();/ 執(zhí)行sql,發(fā)送消息cmd.executenonquery();catch (sqlexcep
37、tion)finally/ 關閉連接conn.close();然后在客戶端編寫getmessage函數(shù),調(diào)用服務器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.send
38、message(username, ta_content.value);/ 清空輸入框ta_content.value = ;/ 頁面跟隨輸入框滾動ta_content.scrollintoview(false);/ 獲取新消息getnewmessage();getmessage函數(shù)的代碼如下:5.2 接收消息功能實現(xiàn)為了實現(xiàn)接收消息的功能,在服務器端代碼中需要定義ajax方法getnewmessage,具體代碼如下:ajaxmethod()public dataset getnewmessage()/ 返回的數(shù)據(jù)集dataset ds = new dataset();/ 數(shù)據(jù)連接sqlcon
39、nection conn = new sqlconnection(configurationsettings.appsettingsconnstr);/ 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;然后在客戶端編寫
40、getnewmessage函數(shù),調(diào)用服務器ajax方法進行消息的發(fā)送。getnewmessage函數(shù)的代碼如下:function 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 = dt.rowsi.sender + 說: ( + dt.rowsi.sendtime + );strline1 = dealbrackets(strline1);/ 消息內(nèi)容 var strline2 = dt.rowsi.content;strline2 = dealbrackets(strline2);/ 顯示樣式onemsg.innerhtml = + strline1 + + strline
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年教育信息化背景下教師信息技術與課程融合研究報告
- 新媒體環(huán)境下2025年新聞傳播真實性與公信力新聞媒體社會責任履行策略研究報告
- 2025中聯(lián)重科股份有限公司招聘280人筆試參考題庫附帶答案詳解析
- 領導者的行為模式與團隊表現(xiàn)的關系試題及答案
- S7-200 plc考試試題及答案
- 餐飲行業(yè)廚師長及團隊聘用合同
- 2025金融服務租賃合同范本
- 特色美食餐廳轉(zhuǎn)讓及經(jīng)營管理系統(tǒng)合同
- 實習與實踐教學對培養(yǎng)應用型人才的促進作用
- 材料員崗位聘用與職業(yè)能力培養(yǎng)服務合同
- 教研組工作匯報課件
- 低血糖護理新技術新進展
- 調(diào)酒師職業(yè)技能鑒定所(考場)設置標準
- 臨終關懷服務技術創(chuàng)新與應用探索
- 全過程工程咨詢模式探討
- 魯科版選修3《物質(zhì)結構與性質(zhì)》全一冊學案有答案
- 承包建筑寺廟合同范本
- 人力資源(人事)及行政管理制度體系資料文件
- 押安徽中考數(shù)學第15題(實數(shù)的運算、化簡求值、解方程【組】與不等式【組】)(原卷版+解析)
- 十年(2015-2024)高考真題數(shù)學分項匯編(全國)專題03 平面向量(學生卷)
- 新公司組織架構圖及人員設置
評論
0/150
提交評論