基于node.js的web聊天室开发(源码)【字数:6295】

在网络技术发张迅猛的当下,网络成为人与人之间交流必不可少的纽带。其中最为重要的一环便是即时通讯服务的诞生。传统的C/S架构即时通讯服务存在着需要下载安装、占据存储空间等问题,而相比之下基于B/S架构的聊天室具有免安装、轻量化、不受平台限制的优点。综上所述,本文主要对Web聊天室需求进行了系统分析,以基于JavaScript语言的Node.js及其众多模块为基础搭建了B/S架构的聊天室项目,采用非关系型数据库(NoSQL)MongoDB存储数据,实现了即时通讯服务。本课题详细介绍了Web聊天室服务的设计过程、开发工具以及项目的具体实现方式。
目 录
一、引言 2
(一)开发背景 2
(二)选题意义 2
(三)设计目标 2
(四)开发软件 2
二、系统分析与设计 2
(一)系统功能需求 2
(二)Web端流程图 2
(三)数据库设计 2
(四)原型设计 2
(五)开发及运行环境 2
三、概要设计 2
(一)基本设计和处理流程 2
(二)系统功能模块图 2
(三)系统功能结构 2
四、系统具体实现 2
(一)登录 2
(二)注册 2
(三)退出 2
(四)聊天 2
(五)路由拦截 2
(六)图片发送 2
(七)频道 2
(八)加密 2
五、系统测试 2
(一)测试环境 2
(二)测试过程 2
六、结束语 2
致谢 2
参考文献 2
一、引言
(一)开发背景
网页聊天室是一种基于浏览器的一种实时在线交流工具。在网络技术日新月异的移动互联网时代,网络成为人与人之间沟通不可或缺的桥梁。人们的远程实时沟通交流方式从2G时代的短信和电话,逐步过渡到手机APP,但是手机Instant Messaging(IM)APP存在着需要下载、需要安装、占据内存空间等问题,使用不够方便,获取不够快捷。现如今,随着大前端、H5以 *好棒文|www.hbsrm.com +Q: #351916072# 
及WebView等技术的兴起,基于Web浏览器的B/S架构应用逐渐受到了人们的关注。Web应用具有免安装、轻量化、不受平台限制等优点,使其在软件开发当中逐步取代了一部分传统C/S架构的地位。在即时通讯应用领域,C/S架构基本处于主流地位,但也存在不少Web端应用。早期的Web聊天室应用实现手段较为复杂繁琐且效率不高:采用Ajax轮询技术需要不断地定时发起TCP请求以达到浏览器与服务器双向实时传递信息的目的,浪费了大量带宽和服务器资源;在浏览器端安装ActiveX等插件亦可实现聊天室效果,但实现过程繁琐且不便于用户使用。随着HTML5标准的诞生,H5开始提供服务器与浏览器之间的全双工通信网络技术协议,也就是WebSocket网络传输协议。WebSocket基于OSI模型(Open System Interconnection Model)中的传输层的TCP协议,位于应用层,可在单个TCP连接上进行全双工通信,复用了HTTP的握手通道,仅需完成一次握手便可建立永久连接实现双向数据传输。
(二)选题意义
Web应用开发是程序开发的重点方向之一,随着跨平台开发需求的增大和Web端框架的不断更新,选择Web应用开发的人日益增多。与传统的C/S架构即时聊天工具相比,B/S架构具有不占存储空间、无需安装、跨平台使用等优点。本选题的意义在于将传统的C/S架构即时聊天的部分功能迁移至Web端,使其更加灵活方便使用。
(三)设计目标
本选题意在使用Node.js并结合MongoDB数据库搭建后端服务器环境,开发一套网页端的即时聊天工具,主要设计目标包括服务器可以同时与多个用户建立双向通信连接,用户可以在注册界面填写用户名密码注册新用户并在登录界面登录以进入聊天室与其他用户进行实时在线文字交流。
(四)开发软件
1. JetBrains DataGrip 2020.3.2
DataGrip 出自JetBrains 公司,是一款可方便连接各类数据库的跨平台数据库管理客户端工具,功能类似于Navicat,可以提供连接数据库服务器、执行数据库命令如SQL语句、创建表或集合等功能。
2. Microsoft Visual Studio Code 1.55.0
Visual Studio Code(VSCode)是微软(Microsoft)公司开发并开源发布的可供广大软件开发人员免费使用的一款轻量级可跨平台的代码编辑器,功能强大易用,可以同时编写多种格式的文件例如.html,.css,.js等,支持使用插件无限拓展额外功能,拓展后可以实现许多复杂IDE(integrated development environment)的功能。
3.Node.js技术
Node.js是一个异步事件驱动的、基于Google开发用于Chrome的V8引擎的I/O服务端JavaScript 环境。
Node.js包含多种模块可供使用,其中包括灵活且简介的Express Web应用框架,express框架的核心功能是设置中间件(middleware)响应HTTP请求。Node.js提供Mongoose模块连接MongoDB数据库,同时封装了增删改查等常用数据库操作使其变得便捷灵活。同时,Node.js提供了socket.io模块,该模块主要使用了WebSocket协议,可用于网页端与服务器端实现双向通信。
4.MongoDB
MongoDB是一种开源的基于分布式文件存储且面向文档的高性能非关系型数据库管理系统,编写语言为C++。数据存储格式十分类似于json字符串格式,数据结构由键值对组成,使得MongoDB进行数据处理操作十分方便。
二、系统分析与设计
(一)系统功能需求
Node.js聊天室是基于互联网的即时聊天工具,用于多个用户在线相互传递文字消息。主要功能包括:用户登录、注册、退出、用户上线提示、下线提示、用户输入提醒、消息显示。
(二)Web端流程图
Node.js聊天室主要通过前端浏览器页面JS代码发送用户请求和数据到后端Node.js服务器处理请求与数据,服务器连接数据库并根据用户发来的数据和请求进行相关的查询,数据库查询匹配的结果返回服务器之后,由服务器处理结果并响应回前端浏览器页面,实现主要功能。如图21所示:

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/rjgc/259.html

好棒文