freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于nodejs的即時(shí)通訊系統(tǒng)畢業(yè)論文(更新版)

2025-07-27 16:50上一頁面

下一頁面
  

【正文】 ()。), server = (function(req, res) { (200, { 39。 模塊中包含了很多功能代碼片斷,在模塊中的代碼大部分都是私有的,意思是在模塊中定義的函數(shù)方法和變量,都只能在同一個(gè)模塊中被調(diào)用。 Nodejs的模塊Nodejs使用Module模塊去劃分不同的功能,以簡化應(yīng)用的開發(fā)。并發(fā)編程通常很復(fù)雜且布滿地雷。V8引擎本身使用了一些最新的編譯技術(shù)。服務(wù)器端JavaScript:nodejs—出勢必會(huì)引發(fā)一系列即時(shí)通訊系統(tǒng)的開發(fā),本系統(tǒng)便是對(duì)此領(lǐng)域的探索。該系統(tǒng)設(shè)計(jì)了局域網(wǎng)內(nèi)用戶信息的交流,文件的傳輸?shù)裙δ?。近年來,隨著無線通信的快速發(fā)展,移動(dòng)互聯(lián)網(wǎng)為傳統(tǒng)的Internet注入了新的活力,同時(shí)也為即時(shí)通訊帶來了一場革命,交互雙方已經(jīng)不再局限于以網(wǎng)絡(luò)終端設(shè)備為唯一的接入手段,PC機(jī)在傳統(tǒng)的網(wǎng)絡(luò)即時(shí)通訊中所起的作用正在被手機(jī)、平板電腦所取代。系統(tǒng)主要采用不/S架構(gòu)JavaScript開發(fā)平臺(tái)、html5協(xié)議以及Socket等技術(shù)來完成。大部分的即時(shí)通訊服務(wù)提供了狀態(tài)信息的特性──顯示聯(lián)絡(luò)人名單,聯(lián)絡(luò)人是否在在線與能否與聯(lián)絡(luò)人交談。即時(shí)通訊不再是一個(gè)單純的聊天工具,它已經(jīng)發(fā)展成集交流、資訊、娛樂、搜索、電子商務(wù)、辦公協(xié)作和企業(yè)客戶服務(wù)等為一體的綜合化信息平臺(tái)。即時(shí)通信中最基本的功能就是通過計(jì)算機(jī)之間的文本數(shù)據(jù)的互換的形式實(shí)現(xiàn)思想的交流和溝通,它的優(yōu)點(diǎn)是方便快捷,為人們之間創(chuàng)建了一種新型的、廉價(jià)的、快速的、簡便的溝通方式。45 即時(shí)通訊(Instant Messenger,簡稱IM),是指能夠即時(shí)發(fā)送和接收互聯(lián)網(wǎng)消息等的業(yè)務(wù)。但是運(yùn)用nodejs技術(shù)開發(fā)的即時(shí)通訊系統(tǒng)并不多,本文的即時(shí)通訊系統(tǒng)即是運(yùn)用這種技術(shù)開發(fā)設(shè)計(jì)的,對(duì)于開發(fā)者來說它的技術(shù)實(shí)現(xiàn)簡單易懂,對(duì)于用戶來說更容易掌握,界面圖形化實(shí)現(xiàn)能更好的服務(wù)于大眾。每一個(gè)流行語言的出現(xiàn)都會(huì)伴隨著各種相關(guān)應(yīng)用的誕生,而流行程度又決定了這些應(yīng)用的多樣性。Node對(duì)一些特殊用例進(jìn)行了優(yōu)化,提供了替代的API,使得V8在非瀏覽器環(huán)境下運(yùn)行得更好。提高服務(wù)器性能的技巧有多種多樣。雖然還存在其他一些支持Javascript在服務(wù)器端 運(yùn)行的平臺(tái),但因?yàn)樯鲜鎏匦裕琋ode發(fā)展迅猛,成為事實(shí)上的平臺(tái)。如果nodejs找不到這個(gè)目錄,則會(huì)到全局模塊緩存中去尋找,用戶可以通過相對(duì)或者絕對(duì)路徑,指定模塊的位置,比如:var myModule = require(39。在項(xiàng)目文件夾下安裝相關(guān)環(huán)境鍵入命令:npm install express 回車等待安裝express鍵入命令:npm install 回車等待安裝 安裝什么組件,取決于環(huán)境搭建需求。 (39。)。NodeJS上的ExpressJS框架可以方便實(shí)現(xiàn)眾多功能:新建Server,配置,設(shè)置路由,通過NPM命令‘npm install’,運(yùn)行NodeJs中的NPM包即可安裝。根據(jù)聊天的通信步驟,系統(tǒng)的功能模塊如圖41所示 即時(shí)通訊系統(tǒng)客戶端服務(wù)器端登錄功能聊天功能字體顏色設(shè)計(jì)發(fā)送表情功能發(fā)送圖片功能建立連接斷開連接監(jiān)聽客戶請(qǐng)求返回響應(yīng)發(fā)送請(qǐng)求圖41 (1) 服務(wù)器端服務(wù)器端完成3大功能:建立連接、斷開連接、監(jiān)聽客戶請(qǐng)求。聊天功能:客戶在與好友建立通信連接后,便可以與好友進(jìn)行聊天,聊天時(shí)發(fā)送的是文本信息。第五章 系統(tǒng)總體設(shè)計(jì) 系統(tǒng)設(shè)計(jì)的主要內(nèi)容本聊天工具采用客戶端/服務(wù)器端的模式來設(shè)計(jì),可以將任務(wù)合理分配到客戶端和服務(wù)器端,從而降低了系統(tǒng)的通信開銷。在應(yīng)用設(shè)計(jì)中,必須避免在表示層和功能層之間進(jìn)行多次的數(shù)據(jù)交換,這就需要盡可能進(jìn)行一次性的業(yè)務(wù)處理,達(dá)到優(yōu)化整體設(shè)計(jì)的目的。V8引擎本身使用了一些最新的編譯技術(shù)。并發(fā)編程通常很復(fù)雜且布滿地雷。(2)基于Socket的編程從概念上理解,Socket是網(wǎng)絡(luò)編程中最常見的是客戶/服務(wù)器模式,也是我們本聊天工具的基礎(chǔ)。利用上面的如上的測試代碼,創(chuàng)建一個(gè)HTTP服務(wù)器并監(jiān)聽端口。 fontfamily: sansserif。 right: 0。}nickWrapper { display: none。}historyMsg { height: 400px。 border: none。}/*end custom file input*/messageInput { width: 440px。 width: 500px。 height: 25px。用戶點(diǎn)擊圖片按鈕后,彈出文件選擇窗口供用戶選擇圖片。, function() { //檢查是否有文件被選中 if ( != 0) { //獲取文件并用FileReader進(jìn)行讀取 var file = [0], reader = new FileReader()。)。img39。 }, false)。).。.gif /39。sendBtn39。 = 39。, msg, color)。, function(e) { if ( == 13) { var nickName = (39。 }, false)。colorStyle39。, msg, color)。同時(shí)考慮到在前端我們無法得知用戶是進(jìn)入還是離開,所以在這個(gè)system事件里我們多傳遞一個(gè)數(shù)據(jù)來表明用戶是進(jìn)入還是離開。 left39。).appendChild(p)。 online39。界面簡潔美觀,可以增進(jìn)用戶之間的交流。我使用HTML,Nodejs,Socket等相關(guān)技術(shù)完成系統(tǒng),雖然系統(tǒng)已基本完成,但我對(duì)于nodejs的核心技術(shù)和高級(jí)編程還是很陌生,不能熟練運(yùn)用。 為了不影響用戶體驗(yàn),我們?cè)O(shè)計(jì)的‘Interactive’ 請(qǐng)求只需要??傊?,我以后要多專心研究軟件開發(fā),以更加飽滿的熱情投入到本專業(yè)的學(xué)習(xí)中去,認(rèn)真做好每一件事情,爭取得到更多的收獲。 運(yùn)行客戶端打開瀏覽器,輸入localhost:3000,系統(tǒng)就可運(yùn)行系統(tǒng)運(yùn)行之后,進(jìn)入登錄界面:輸入昵稱就可進(jìn)入聊天。預(yù)覽效果如下:圖68 第七章 系統(tǒng)測試測試系統(tǒng)Windows 7,測試瀏覽器Google Chrome。status39。 var p = (39。system39。me39。 if ( == 13 amp。messageInput39。).value。}, false)。 ()。click39。 }。 if (emojiIndex totalEmojiNum) { result = (match[0], 39。圖63文字總是很難表達(dá)出說話時(shí)的面部表情的,于是表情就誕生了。 (39。39。system39。而base64格式的圖片直接可以指定為圖片的src,這樣就可以將圖片用img標(biāo)簽顯示在頁面了。}.emoji{ display: inline。 position: absolute。 height: 90px。}/*custom the file input*/.imageLable { position: relative。 overflow: auto。 width: 100%。 left: 0。 height: 640px。 主界面的構(gòu)建,因?yàn)槭潜容^大眾化的應(yīng)用了,界面不用多想,腦海中已經(jīng)有大致的雛形,它有一個(gè)呈現(xiàn)消息的主窗體,還有一個(gè)輸入消息的文本框,同時(shí)需要一個(gè)發(fā)送消息的按鈕,這三個(gè)是必備的??蛻舳讼蚍?wù)器端提出連接請(qǐng)求,連接之后進(jìn)行通信。雖然讓Javascript運(yùn)行于服務(wù)器端不是Node的獨(dú)特之處,但卻是其一強(qiáng)大功能。對(duì)性能的苛求是Node的一個(gè)關(guān)鍵因素。該平臺(tái)的構(gòu)建是基于Chrome39。給聊天工具設(shè)計(jì)一個(gè)客戶層具有很多優(yōu)點(diǎn),這是因?yàn)榭蛻魧訐?dān)負(fù)著用戶與應(yīng)用之間的對(duì)話功能。 系統(tǒng)開發(fā)原則考慮到系統(tǒng)的可重用性和伸縮性,需要將本系統(tǒng)的網(wǎng)絡(luò)通信底層和應(yīng)用系統(tǒng)分離開。斷開連接:關(guān)閉監(jiān)聽窗體,系統(tǒng)斷開連接。 經(jīng)濟(jì)可行性基于局域網(wǎng)、B/S架構(gòu)的即時(shí)通訊系統(tǒng)在很多資料上都能找到,包括書本和網(wǎng)絡(luò)上都有很多類似的系統(tǒng),開發(fā)這樣一個(gè)系統(tǒng)所需要的花費(fèi)不是很大,需要的開發(fā)工具、需要的軟件等都可以在網(wǎng)上找到,不需要購買,所以不需要花費(fèi)太多金錢,在經(jīng)濟(jì)上完全能夠完成本系統(tǒng)的設(shè)計(jì)。 第三章 系統(tǒng)可行性分析 技術(shù)可行性所謂可行性分析,是關(guān)于項(xiàng)目的內(nèi)容以及條件:例如供應(yīng)需求,設(shè)備規(guī)模,環(huán)境利益等方面進(jìn)行調(diào)查和分析,預(yù)測項(xiàng)目完成后可能獲得的經(jīng)濟(jì)和環(huán)境效益進(jìn)行預(yù)測,提出項(xiàng)目是否應(yīng)該投資以及運(yùn)行方式的意見的一種系統(tǒng)分析方法。)。39。)。它通過事件輪詢(event loop)來實(shí)現(xiàn)并行操作,對(duì)此,我們應(yīng)該要充分利用這一點(diǎn) —— 盡可能的避免阻塞操作,取而代之,多使用非阻塞操作。這是一個(gè)非常重要的特性。因此,Node不僅僅簡單地使用了V8,還對(duì)其進(jìn)行了優(yōu)化,使其在各環(huán)境下更加給力。,可以看出JavaScript的繁榮程度。該系統(tǒng)可用應(yīng)用于企業(yè)局域網(wǎng)信息交流。即時(shí)通訊不再是一個(gè)單純的聊天工具,它已經(jīng)發(fā)展成集交流、資訊、娛樂、搜索、電子商務(wù)、辦公協(xié)作和企業(yè)客戶服務(wù)等為一體的綜合化信息平臺(tái)。 本畢業(yè)設(shè)計(jì)就是模擬Web 聊天軟件,開發(fā)一個(gè)包括文字聊天、文件傳輸?shù)裙δ艿牧奶燔浖?。即時(shí)通訊不同于在于它的交談是即時(shí)的。是一種終端連網(wǎng)即時(shí)通訊網(wǎng)絡(luò)的服務(wù)。本文分析了即時(shí)通訊系統(tǒng)的原理及其實(shí)現(xiàn)過程,探討了Socket技術(shù)與多線程技術(shù)在不/S模式下的局域網(wǎng)即時(shí)通訊系統(tǒng)的應(yīng)用。自1998年面世以來,特別是近幾年的迅速發(fā)展,即時(shí)通訊的功能日益豐富,逐漸集成了電子郵件、博客、音樂、電視、游戲和搜索等多種功能。、目的及意義該系統(tǒng)的設(shè)計(jì)內(nèi)容以即時(shí)通訊的發(fā)展為背景,基于nodejs技術(shù)設(shè)計(jì)、開發(fā)的即時(shí)通訊系統(tǒng)。用PHP實(shí)現(xiàn)的即時(shí)通訊系統(tǒng)就要比用Perl實(shí)現(xiàn)的多得多,社區(qū)力量的比較可見一斑,JavaScript社區(qū)的影響也越來越大。例如,在服務(wù)器環(huán)境中,處理二進(jìn)制數(shù)據(jù)通常是必不可少的,但Javascript對(duì)此支持不足,因此,方便并且高效地處理二進(jìn)制數(shù)據(jù)。Node選擇了一種既能提高性能,又能減低開發(fā)復(fù)雜度的架構(gòu)。Nodejs可以在不新增額外線程的情況下,依然可以對(duì)任務(wù)進(jìn)行并行處理 —— Nodejs是單線程的。./39。 測試程序,內(nèi)容如下 var = require(39。hello world!39。軟件安裝成功后,運(yùn)行node server,檢查服務(wù)器端是否準(zhǔn)備就緒,打開瀏覽器輸入localhost就可運(yùn)行。因此,本系統(tǒng)的開發(fā)是完全可以實(shí)現(xiàn)的。這3大功能的具體含義如下:建立連接:系統(tǒng)啟動(dòng)時(shí)建立連接,綁定本地計(jì)算機(jī)的一個(gè)端口,不斷地監(jiān)聽是否有客戶端請(qǐng)求連接或者斷開連接。表情圖片發(fā)送功能:用戶之間可以相互發(fā)送表情和圖片。(1)客戶端客戶層端也叫應(yīng)用表示層,是應(yīng)用程序的用戶接口部分。 采用的主要技術(shù)(1)NodejsNodejs是一個(gè)可以快速構(gòu)建網(wǎng)絡(luò)服務(wù)及應(yīng)用的平臺(tái) 。這使得用Javascript這類腳本語言編寫出來的代碼運(yùn)行速度獲得了極大提升,卻節(jié)省了開發(fā)成本。Node繞過了這些,但仍提供很好的性能。以該模式編程時(shí),服務(wù)器端有一個(gè)進(jìn)程或多個(gè)進(jìn)程在指定的端口等待客戶來連接,一旦連接成功,便按設(shè)計(jì)的數(shù)據(jù)交換方法和格式進(jìn)行數(shù)據(jù)傳輸。圖61從命令行運(yùn)行node server或者node ,服務(wù)器便可啟動(dòng)了,此刻我們就可以在瀏覽器欄輸入localhost進(jìn)行訪問。}.wrapper { width: 500px。 bottom: 0。}.banner { height: 80px。 backgroundcolor: fff。 padding: 0。 maxwidth: 440px。 bottom: 105px。}emojiWrapper img:hover { backgroundcolor: blue。之后我們可以在JavaScript代碼中使用FileReader來將圖片讀取為base64格式的字符串形式進(jìn)行發(fā)送。 if (!reader) { (39。 = 39。, )?,F(xiàn)在啟動(dòng)服務(wù)器打開程序,我們就可以發(fā)送圖片了。 while (match = (msg)) { emojiIndex = match[0].slice(7, 1)。)。).addEventListener(39。39。 }。nicknameInput39。 (39。).value。 (39。Hichat中的代碼如下:(39。)。 //將在線人數(shù)顯示到頁面頂部 (39。})。 服務(wù)器啟動(dòng)完成系統(tǒng)設(shè)計(jì)后啟動(dòng)服務(wù)器,在Windows控制臺(tái)下執(zhí)行如下命令:node server或node 圖81 服務(wù)器運(yùn)行界面圖示顯示服務(wù)器已經(jīng)啟動(dòng)。在此次的畢業(yè)設(shè)計(jì)中,我深深地體會(huì)到進(jìn)行軟件開發(fā)不是一件容易的事情,它需要開發(fā)者具備全面的專業(yè)知識(shí)、嚴(yán)謹(jǐn)?shù)墓ぷ鲬B(tài)度、縝密的思維以及較高的分析問題、解決問題的能力,而我在很多方面還有欠
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1