基于nodejs的⽹络聊天室实现
⼀、实验选题
1.1选题背景及意义
本次课程设计选题为 :仿QQWeb即时聊天系统。
由于WEB的易⽤性、实⽤性,它很快占据了主导地位,⽬前成为使⽤最⼴泛、最有前途、最具魅⼒的信息传播技术。本次实验就就基于web技术对社交⽹站开发的初步探索。实验过程,加深对已学的知识,复习和巩固计算机软件设计知识,加深对软件设计⽅法、软件设计技术和设计思想的理解,如java语⾔,数据库mysql,web前端技术的实践,掌握软件设计的⽅法和⾯向对象程序设计的基本技术,同时⾃学websocke这⼀新的技术,提⾼在软件开发⽅⾯的综合应⽤能⼒。实验是⼩组合作,对未来的职业有了⼩⼩的体验,对合作交流有了更深的理解,在⽹上得到了更多不同解决问题的⽅法和思路。
1.2实验内容
本次课程设计内容为仿QQWeb即时聊天系统。
具体要求是:
实现Web的点对点即时的⽂本消息聊天功能。
实现Web的表情的发送、接收和显⽰功能。
实现Web的图⽚的发送、接收和显⽰功能。
实现本地消息的存储,在离线的时候也能加载和查看历史消息;
要求使⽤WebSocket;
具体⼯作:
A. 分⼩组选课题;
B. 注册码云,⼩组成员加⼊,在实验的过程中更新码云,上传实验进度;
C.⼩组成员分析实验内容,搭建好环境,并分任务;
D.成员各⾃完成⾃⼰任务,相互沟通,逐步完成项⽬需求;
1.3相关技术及⼯具
开发⼯具:MyEclipse,eclipse,vscode,gitbash,gitee
数据库设计与创建:MySQL,mysqlyog
服务器:(Web)Socket协议
框架:nodejs下的express和socket.io
⼆、实验⽬的
综合实践能⼒创新实训(1)课程设计是计算机、⽹络、物联⽹、软件⼯程、信息安全等专业的⼀个综合性实践教学环节,是学习完《Internet与Web编程》课程后进⾏的⼀次全⾯的综合练习。其⽬的在于促进学⽣复习和巩固计算机软件设计知识,加深对软件设计⽅法、软件设计技术和设计思想的理解,并能运⽤所学软件设计知识和WEB⼯程技术进⾏综合软件设计,通过本课程设计让学⽣进⾏简单WEB应⽤软件系统的开发,掌握软件设计的⽅法和⾯向对象程序设计的基本技术,提⾼学⽣在软件开发⽅⾯的综合应⽤能⼒。
三、总体设计(含背景知识或基本原理与算法、或模块介绍、设
计步骤等)
3.1需求概述
1)客户端:提供登录、注册、主窗体及聊天等界⾯及对应的业务逻辑,向服务器发送相应的服务请求,并接受相应的处理结果。具体的处理交给服务器,⽽客户端只接收服务器处理的结果并显⽰给⽤户。
2)服务器:监控登录信息及在线⽤户信息,接收客户端的服务请求,并做相应的处理,然后将处理结果发送给客户端。服务器负责负责连接数据库,保存和读取数据。
3.2系统业务流程分析
3.3功能分析及系统模块设计
3.2系统架构设计
4.1数据库设计
(1)概念结构设计
(2)物理结构设计
表结构设计
表1 message
表2 usersInformation
4.2系统⼦模块流程设计(1) ⼦模块功能及流程
(1)⽤户在浏览器打开⽹址,由于项⽬部署在本地,只要输⼊localhost+端⼝号就能进⼊,客户端与服务器建⽴连接(2)通过注册登录⼀系列操作与数据库交互,从⽽登⼊聊天系统
(3)服务器与多个客户端连接,通过websocket技术在服务器端与客户端传递数据
(4)实现了实时
(3) 关键类说明
(1)public⽬录为服务器的静态资源,存储html页⾯以及css/js⽂件
(2)public下的index.html是前端页⾯代码⽂件,与⽤户交互
(3)node_modules⽂件夹存储nodejs的库,便于服务器端引⽤
(4)app.js是服务器端代码⽂件,处理业务逻辑
4.3关系技术设计及实现
(1)登录技术:采⽤mysql数据库实现,通过app.js与MySQL数据库连接查询,从⽽验证⽤户登录
(2)注册技术:同上登录技术,采⽤mysql插⼊语句
socket编程聊天室基本流程
(3)权限技术:通过⽐较⽤户输⼊数据与验证查询所得信息是否相符和,限制其权限
4.4运⾏环境
硬件:64位window系统笔记本电脑
软件:vscode(内嵌node插件)、gitbash(上传本地代码到码云存储)
Gitee⽹页版(云端存储代码)
图1 登录界⾯
图2 注册界⾯
图4 进⼊聊天室
图5 图⽚的发送、接收和显⽰功能
图6 点对点即时的⽂本消息聊天功能

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。