一、实验选题
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) 子模块功能及流程

(2) 算法描述
(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插入语句
(3)权限技术:通过比较用户输入数据与验证查询所得信息是否相符和,限制其权限
4.4运行环境
硬件:64位window系统笔记本电脑
软件:vscode(内嵌node插件)、gitbash(上传本地代码到码云存储)
Gitee网页版(云端存储代码)

五、实验结果与分析
(一) 功能截图及说明
(1)运行说明
先打开命令行程序,打开项目路径,输入一下命令:node app.js。得到提示服务器启动成功。
在浏览器中打开http://localhost:3000/,进入页面,登录用户名
最终进入实时聊天系统页面,使用完删除该页面即可退出系统。
(2)功能截图

图1 登录界面

图2 注册界面

图3 注册成功

图4 进入聊天室

图5 图片的发送、接收和显示功能

图6 点对点即时的文本消息聊天功能

图7 表情的发送、接收和显示功能

(二)测试结果分析:
       本次实验测试能够大致达到选题要求,文字、图片、表情都能够正常接收发送。唯一美中不足的是私聊功能因进度和学习程度问题而未实现。
       此次选题难度较大,websocket技术之前没有接触过,nodejs也比js要更生疏。但是这也是一个优势,相对其他同学的选题该题较为新颖,做完后不仅熟悉了socket通信协议,而且能够理解相较于http ajax轮询技术,socket技术在实时通信中的巨大优势,而且收获更多新知识。

基于nodejs的网络聊天室实现相关推荐

  1. 【基于UDP的网络聊天室】

    总结下近期写的小项目,在学习中同时积累解决问题的经验,以及真正的项目中解决问题的思路,如有不合理地方,请多指教! 一.项目名称 基于UDP的网络聊天室 二.功能 1.当有新用户登录时,其他在线用户可以 ...

  2. 基于UDP的网络聊天室网络编程0811作业-洪庆乐

    项目:基于UDP的网络聊天室 功能:1.服务器日志系统,且可以查看(实现) 2.有用户,其他用户收到这个人登入信息(实现) 3.群发消息(实现) 4.如果有用户下线,其他用户收到下线消息(实现) 5. ...

  3. 基于TCP的网络聊天室实现(C语言)

    基于TCP的网络聊天室实现(C语言) 一.网络聊天室的功能 二.网络聊天室的结果展示 三.实现思路及流程 四.代码及说明 1.LinkList.h 2.LinkList.c 3.client.c 4. ...

  4. 【毕业设计之PHP系列】基于PHP的网络聊天室系统

    基于PHP的网络聊天室系统 摘要:我们生活在一个通信变得非常重要的世界里,人们需要同他人快速容易的进行交流.E-mail.电话.邮件以及在线聊天是以书写文字的形式让人们进行思想交流的媒体.通信时一个重 ...

  5. python基于udp的网络聊天室再用tkinter显示_Python实现网络聊天室的示例代码(支持多人聊天与私聊)...

    实验名称: 网络聊天室 功能: i. 掌握利用Socket进行编程的技术 ii. 掌握多线程技术,保证双方可以同时发送 iii. 建立聊天工具 iv. 可以和单人聊天 v. 可以和多个人同时进行聊天 ...

  6. 【完整代码及文档】基于Java的网络聊天室系统的设计与实现

    摘 要 计算机从出现到现在有了飞速的发展,现阶段的计算机已经不单单是用于进行运算的独立的个体了,跟随计算机一同发展的还有互联网技术,经过了长久的发展,互联网技术有了日新月异的发展,它的发展速度和计算机 ...

  7. javaweb课程设计:基于websocket的网络聊天室(所有的资源和代码还有详细步骤我都会提供)

    1 课程设计目的和任务 本项目的是实现在web应用上进行多人聊天,为以后在大型项目中实现客服在线服务做一个测试,提前了解HTML5新特性,熟练掌握websocket技术. 2 课程设计的主要内容 实现 ...

  8. QT学习:基于TCP的网络聊天室程序

    TCP与UDP的差别如图: 一.TCP工作原理 如下图所示,TCP能够为应用程序提供可靠的通信连接,使一台计算机发出的字节流无差错 地送达网络上的其他计算机.因此,对可靠性要求高的数据通信系统往往使用 ...

  9. 基于websocket的网络聊天室

    所用技术 socket.io socket.io是在websocket上进行了一层封装,让websocket变得更好用. express Express 是一个简洁而灵活的 node.js Web应用 ...

最新文章

  1. iOS 9应用开发教程之定制应用程序图标以及真机测试
  2. python流程控制语句-Python流程控制语句的深入讲解
  3. 廖雪峰Java2面向对象编程-4抽象类和接口-1抽象类
  4. substring和charindex的使用注意
  5. 工作日的努力python_python计算上班时间的问题
  6. shell 编程 变量
  7. Hive Cilent数据操作
  8. ptyhon中文本挖掘精简版
  9. Android RecyclerView、ListView实现单选列表的优雅之路.
  10. 看懂友盟指数,洞察移动行业大趋势
  11. PyCharm远程链接矩池云
  12. 设计模式 ( 十五 ) 模板方法模式
  13. MySql字符串拼接
  14. ppt计算机实验报告册,PPT实验报告模板
  15. 使用ConfuserEx实现项目加密
  16. Linux ——vi / vim 新建文件vi abc.txt 、编辑文件 i、退出编辑 esc、保存文件:wq、打开文件所在目录 open . 、使用命令打开文件 open ./abc.txt。
  17. 名师李涛老师主讲 Photoshop CS2 (全教程下载)
  18. roundcube邮箱手机端_在手机上使用便签软件敬业签怎么将便签内容导出到邮箱?...
  19. 约瑟夫问题c语言链表41人,约瑟夫问题 C语言链表实现
  20. 【IT精英】IT传奇人物比尔盖茨的故事

热门文章

  1. 网易教学公开课视频php100,同济大学公开课:建筑概论
  2. oel6mysql_OEL7.6安装Oracle Database 19C(VERSION 19.3.0.0)
  3. linux系统设计软件,FreeCAD:Linux 下的 3D 建模和设计软件
  4. VS2022 EGE 游戏开发之跨年滑雪小游戏
  5. 测试行业本科应届生薪资大概是多少?外行人15k垫底25k是人均水平...
  6. C++ 11(2.0)新特性 09(RValue Reference ROV技术)
  7. 简单几个设置教会你更好的保护Mac!不让你的Mac中毒小妙招!
  8. 【C语言】数字炸弹(0-100之间)
  9. 神州信息“天昊”平台助力多家银行提升中小微信贷业务能力
  10. Recast-Detour看这里就够了!