亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于NodeJS的聊天系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

        2017-07-12 07:16:17柳志強(qiáng)陜粉麗
        電腦知識與技術(shù) 2017年13期
        關(guān)鍵詞:聊天室

        柳志強(qiáng) 陜粉麗

        摘要:NodeJS把javascript推動為互聯(lián)網(wǎng)發(fā)展核心驅(qū)動力,給前端界帶來的更大的發(fā)展?jié)摿?。論文基于NodeJS的事件驅(qū)動及異步編程原理,就一個基于NodeJS的聊天室的實(shí)例結(jié)合HTML5的最新技術(shù)來展~javascript技術(shù)在后端服務(wù)器領(lǐng)域的前景。

        關(guān)鍵詞:NodeJS;html5;聊天室;javascript;群聊

        中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)13-0069-02

        1概述

        1.1課題背景

        在互聯(lián)網(wǎng)飛速發(fā)展的時代,各種各樣的新技術(shù)不斷出現(xiàn)。當(dāng)一門新技術(shù)普及的時候,又會面臨被其他的新技術(shù)替代,不斷的學(xué)習(xí),不斷的研究,把新技術(shù)運(yùn)用在我們的實(shí)際生活當(dāng)中,才是技術(shù)更新?lián)Q代的本質(zhì)要求。作為一個前端愛好者,對HT—ML5的探索之路是不能停下的。跟很多前端界的朋友一樣,總夢想有一天可以用手里的技術(shù)操作后臺。NodeJS的出現(xiàn)正滿足了如此龐大群體的需要。對NodeJS相關(guān)技術(shù)的探究很有必要,很有意義的。

        1.2系統(tǒng)開發(fā)的技術(shù)簡介

        1.2.1HTML5相關(guān)技術(shù)

        HTML5早已不僅僅是簡單的寫網(wǎng)頁的語言,而是前端界一系列新技術(shù)的總稱。系統(tǒng)使用最新的HTML5和CSS3以及ES6等相關(guān)技術(shù),并對他們的新特l生作了部分研究。

        1.2.2NodeJS

        NodeJS是一個可以快速構(gòu)建網(wǎng)絡(luò)服務(wù)及應(yīng)用的平臺。該平臺是對GoogleV8引擎(應(yīng)用于Google Chrome瀏覽器)進(jìn)行了封裝。V8引擎執(zhí)行Javascript的速度非???,各方面性能非常好。Node對一些特殊用例進(jìn)行了優(yōu)化,提供了很多替代的API,使得V8引擎在非瀏覽器環(huán)境下能更好地運(yùn)行。

        1.2.3 Mongodb

        Mongodb數(shù)據(jù)庫屬于文檔模型的NoSQL數(shù)據(jù)庫,文檔是多個鍵值對的有序的組合,允許創(chuàng)建非結(jié)構(gòu)化、任意類型的鍵值對,鍵不用事先定義、也不會固定不變。

        2需求分析

        2.1可行性分析

        本文中主要討論的是技術(shù)可行性。主要從項(xiàng)目實(shí)施的技術(shù)角度,合理設(shè)計(jì)技術(shù)方案,并進(jìn)行比選和評價。NodeJS上的ExpressJS框架可以方便實(shí)現(xiàn)眾多功能:新建服務(wù)器,配置,設(shè)置路由,通過NPM命令“npm install”,運(yùn)行NodeJs中的NPM包即可安裝。

        2.2功能需求

        客戶端的主要功能:用戶登錄注冊、群聊、表情發(fā)送、文件傳輸和上傳圖片到群相冊;

        服務(wù)器端的主要功能:啟動和關(guān)閉后臺服務(wù)器建立連接監(jiān)聽客戶端請求。

        3概要設(shè)計(jì)

        3.1系統(tǒng)總體分析

        該聊天系統(tǒng)的主要模塊有:

        1)登錄模塊,包括功能:顯示當(dāng)前用戶,保存用戶信息到session。

        2)注冊模塊,包括功能:用戶圖像自動生成。

        3)群聊模塊,包括功能:群聊、表情發(fā)送、圖片發(fā)送、字體顏色修改、聊天記錄查看功能。

        4)群相冊模塊,包括功能:上傳用戶圖像、選擇相冊上傳圖片。

        3.2功能模塊圖

        聊天工具由服務(wù)器端和客戶端組成,要分析清楚兩方面所要完成的任務(wù),對設(shè)計(jì)來說,等于完成了一半。根據(jù)聊天的通信步驟,系統(tǒng)的功能模塊如圖1所示。

        4詳細(xì)設(shè)計(jì)

        本系統(tǒng)可分為登錄、注冊、群聊和群相冊四個功能模塊?!暗卿洝蹦K為用戶提供登錄界面,并在用戶登錄顯示好友列表;“注冊”模塊為把用戶信息錄入Mongodb數(shù)據(jù)庫中,“聊天”模塊實(shí)現(xiàn)用戶的即時傳送信息,即多用戶即時聊天,可以發(fā)送文字或者表情圖片;“群相冊”模塊主要實(shí)現(xiàn)一用戶群相冊上傳圖片或上傳自己的頭像。聊天記錄會保存到數(shù)據(jù)庫中的chats集合內(nèi)。

        4.1登錄注冊模塊詳細(xì)實(shí)現(xiàn)

        當(dāng)用戶首次進(jìn)入給定的網(wǎng)址后,會直接跳轉(zhuǎn)到登錄頁面,用戶可直接登錄,若沒有賬號,可點(diǎn)擊注冊按鈕進(jìn)入注冊頁面??紤]到用戶體驗(yàn),注冊界面只有用戶名、密碼和確認(rèn)密碼三項(xiàng)即可完成注冊。當(dāng)用戶進(jìn)入注冊頁面,提交注冊后,首先實(shí)例化用戶表的模型,然后查找用戶名是否存在,如果不存在,會在數(shù)據(jù)庫中插入一條新的數(shù)據(jù),完成注冊。

        4.2群聊模塊詳細(xì)實(shí)現(xiàn)

        用戶完成登錄后,客戶端與服務(wù)器端建立連接。連接建立成功后,客戶向服務(wù)器請求讀取在線人員名單;服務(wù)器收到該請求,開始讀取數(shù)據(jù)庫中的user表并得到所有成員的用戶名,向客戶端發(fā)送這些信息;客戶收到服務(wù)器信息后,就把這些信息展示到頁面中。userIndex表示在線用戶的人數(shù),uselist表示顯示用戶的昵稱數(shù)組。聊天信息的發(fā)送與接收都是通過Sock-et.io模塊實(shí)現(xiàn)的。使用Socket.io對網(wǎng)絡(luò)上某一個服務(wù)器的某一個端口發(fā)出連接請求,一旦連接成功,打開會話;會話完成后,關(guān)閉Socket。也就是說,在服務(wù)端開啟socket服務(wù),客戶端每一次連接成功時也都會同時創(chuàng)建一個線程來處理這次連接的請求,而該連接會被保存在一個集合中,直到服務(wù)結(jié)束,連接關(guān)閉,該線程也會結(jié)束,同時從連接的集合中移除該連接。

        4.3群相冊模塊詳細(xì)實(shí)現(xiàn)

        當(dāng)用戶點(diǎn)擊聊天界面的群相冊,或點(diǎn)擊上傳圖標(biāo)時,會進(jìn)入群相冊界面,群相冊可以分類圖片,實(shí)現(xiàn)用戶的分類上傳,首先會觸發(fā)的事件為讀取uploads文件夾里的各個相冊,判斷是否為文件夾并完成遍歷。然后再把各個相冊的信息已數(shù)組的形式傳給客戶端的list頁面,用eis模板把服務(wù)器端傳過來的數(shù)據(jù)展示在頁面中。

        當(dāng)用戶點(diǎn)擊一個相冊進(jìn)入時,又會觸發(fā)讀取相冊中圖片的函數(shù),首先把要獲取的相冊名以參數(shù)的形式傳到服務(wù)器,服務(wù)器端取到該相冊中的所有的文件名稱,當(dāng)整個數(shù)據(jù)都獲得之后,才會觸發(fā)回調(diào)函數(shù),并讀取album頁面,把相冊里的圖片名稱傳到客戶端。

        4.4其他功能

        4.4.1聊天記錄保存查看實(shí)現(xiàn)

        該功能并沒有很全面的實(shí)現(xiàn),只是給用戶提供保存最近一段時間的聊天記錄,當(dāng)用戶點(diǎn)擊保存聊天記錄時,客戶端會把整個聊天界面的數(shù)據(jù)獲取到,并傳給服務(wù)器,然后在服務(wù)器端把用戶信息和聊天記錄保存到chats集合中。

        4.4.2用戶圖像修改功能

        當(dāng)用戶對自己的頭像不滿意時,可選擇上傳喜歡的頭像到user相冊,用戶需要在本地磁盤中存放已經(jīng)命名好的,并且是以自己的用戶名命名的jpg格式的圖片。當(dāng)上傳成功后,進(jìn)入到聊天界面會發(fā)現(xiàn)自己的頭像已換成剛才上傳的圖片。

        5總結(jié)

        初識NodeJS,并且學(xué)習(xí)和采用,主要原因是因?yàn)镹odeJS在解決當(dāng)今網(wǎng)絡(luò)應(yīng)用的問題時,提供了高性能、高可靠和低功耗的方法。NodeJS所遵循的Unix設(shè)計(jì)哲學(xué),又提供了最簡單有效的復(fù)用規(guī)范,符合軟件開發(fā)的原則。簡單有效,才會被大家自覺采用,采用得越多,重用的可能性就更大。

        npm和github一起,為今天的軟件生產(chǎn)提供了新的生產(chǎn)關(guān)系,這也是當(dāng)前NodeJS超越其他社區(qū)的根本原因。不是單純的性能,也不僅僅是因?yàn)閯討B(tài)語言,甚至不是因?yàn)榇罅渴煜avas-cfipt的前端程序員(和后端程序員相比,由于缺少系統(tǒng)性的思維,前端Javascript程序員掌握NodeJS未必有多少優(yōu)勢),而是以更加便捷的分享式開發(fā)為基礎(chǔ)的生產(chǎn)關(guān)系實(shí)實(shí)在在地提升了軟件生產(chǎn)力。在領(lǐng)域應(yīng)用層面NodeJS在Web開發(fā)領(lǐng)域特別是其中的前端部分已經(jīng)達(dá)到了驚人的繁榮程度,甚至有不少重要系統(tǒng)的后端部分也基于NodeJS完成,對于NodeJS的前景一片光明。

        猜你喜歡
        聊天室
        多多熊聊天室
        新少年(2023年10期)2023-10-24 07:47:12
        歌劇聊天室 洗洗曬曬,又是新一天
        歌劇(2017年4期)2017-05-17 04:07:29
        歌劇聊天室 永遠(yuǎn)盛放的雪絨花
        歌劇(2017年3期)2017-05-17 04:06:47
        JAVA技術(shù)在聊天室系統(tǒng)中的開發(fā)與應(yīng)用
        久久久久九九精品影院| 国产精品无码久久久久久久久久| 射死你天天日| 国产精品高潮呻吟av久久4虎| 无码国产精品第100页| 日本人妻av在线观看| 91精品国产自拍视频| 一级老熟女免费黄色片| 亚洲av成人片色在线观看| 超清精品丝袜国产自在线拍| 极品粉嫩嫩模大尺度无码| 免费国人成人自拍视频| 青青草免费在线视频久草| 少妇无码av无码专线区大牛影院| 日韩成人无码| 亚洲免费av电影一区二区三区| 日韩精品一区二区三区四区五区六| 俺来也三区四区高清视频在线观看 | 国产片三级视频播放| 亚洲国产精品午夜电影| 一级黄色一区二区三区视频| 91精品国产一区国产二区久久| 4hu四虎永久免费地址ww416| 少妇无码太爽了不卡视频在线看| 成人无码一区二区三区网站| 2021精品综合久久久久| 福利视频在线一区二区三区| 一本久久a久久免费综合| 国模丽丽啪啪一区二区| 亚洲中文av一区二区三区| 亚洲人妻有码中文字幕| 亚洲va视频一区二区三区| 野外亲子乱子伦视频丶| 亚洲av鲁丝一区二区三区| 中文乱码字幕在线中文乱码| 一区二区三区国产内射| 亚洲av无码乱码精品国产| 熟妇丰满多毛的大隂户| 青青青伊人色综合久久亚洲综合 | 国产97色在线 | 亚洲| 老太脱裤让老头玩ⅹxxxx|