结合实例浅析Nodejs的聊天室系统.docx
- 文档编号:30106534
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:14
- 大小:245.24KB
结合实例浅析Nodejs的聊天室系统.docx
《结合实例浅析Nodejs的聊天室系统.docx》由会员分享,可在线阅读,更多相关《结合实例浅析Nodejs的聊天室系统.docx(14页珍藏版)》请在冰豆网上搜索。
结合实例浅析Nodejs的聊天室系统
结合实例浅析Node.js的聊天室系统
摘要
JavaScript自2009年诞生以来,一直是前端工程师的专利,其前景获得了技术社区的肯定。
JavaScript以独特的事件驱动、异步编程等特性被授予“为网络服务而设计”的美誉。
本文基于Node.js的事件驱动及异步编程原理,就一个基于多人连接事件的聊天室的实例结合HTML5中WebSocket技术来展示JavaScript技术在后端服务器领域的前景。
关键词:
JavaScript服务器编程Node.js异步编程WebSocket
网络聊天室是一个应用广泛、并且实用性强的应用,虽然它的功能简单,但是基于B\S架构的这个应用可以在开发过程中充分学习并应用网络服务器端开发的知识,如:
Web各界面使用的Web前端技术,实现网络功能的Socket、SocketServer技术,实现数据保存的数据连接和操作技术,并且在开发中能够充分的使用和体会JavaScript事件驱动、异步编程的语言特性。
一、JavaScript的特点
1、JavaScript是一种脚本语言。
不需要先编译,而是在程序运行过程中被逐行地解释。
它与HTML标识结合在一起,从而方便用户的使用操作。
2、JavaScript是一种基于对象的语言。
这意味着它能运用自己已经创建的对象。
因此,许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。
3、JavaScript的简单性主要体现在:
它是一种基于Java基本语句和控制流之上的简单而紧凑的设计,从而对于学习Java是一种非常好的过渡。
其次它的变量类型是采用弱类型,并未使用严格的数据类型。
4、JavaScript是一种安全性语言。
它不允许访问本地的硬盘,并不能将数据存入到服务器上,不允许对网络文档进行修改和删除,只能通过浏览器实现信息浏览或动态交互。
从而有效地防止数据的丢失。
5、JavaScript是动态的。
它可以直接对用户或客户输入做出响应,无须经过Web服务程序。
6、JavaScript是依赖于浏览器本身,与操作环境无关,只要能运行浏览器的计算机,并支持JavaScript的浏览器就可正确执行。
从而实现了“编写一次,走遍天下”的梦想。
Node.js原理也是很简单,就是用Node实现了Websocketdraft-76的协议,同时他对外提供了API,可以方便其他应用程序简化编程。
它继承了node的HTTP.Server的事件和方法,简化了服务端的编程,同时可以处理HTTP的请求。
二、系统结构概述
和许多大型的网络聊天室相比小聊天室比较简单,但能实现聊天的基本功能,点对多聊天,点对点聊天等,基于时间和技术的原因,很遗憾传送文件的功能尚未实现。
本聊天室主要由注册界面、登录界面、聊天室界面、私聊界面、查看聊天内容界面、功能设置界面等构成。
整个设计简洁明了、实用,使用简单。
图2-1客户端结构图
图2-2服务器结构图
三、功能设计
1、用户登入
用户进入登入界面,填写登入用户名和密码实现系统的登入
登入信息不合法
登入信息合法
图3-1 登录活动图
2、公聊
用户登入成功后进入公聊界面,通过输入聊天内容实现和其他的用户聊
天,并可以显示其他用户发送的公聊信息。
格式有错
格式正确
图3-2 公聊活动图
3 私聊
用户通过选择在线用户列表的其他用户,通过单击列表中的用户名显示与其私聊的对话框,实现和选中的用户进行私聊方式进行交流,其他用户不可见。
格式有误
格式正确
图3-3 私聊流程图
4、记录保存
用户在公聊和私聊的过程的同时,将显示在信息窗体中的聊天内容保存到本地文件中,用户可以通过单击查看记录按钮查看历史聊天内容,并可以在本地机器下次登入后,查看历史聊天的记录。
单击保存
信息
读取
图3-4记录保存活动图
5、系统消息
用户管理员通过启动服务器后,可以通过服务器操作界面象全部在线的用户发送系统消息,用于发送公告,提示等系统消息,可以方便管理员和客户的交流和管理。
启动
发送系统消息
消息内容有误
正确
图3-5 系统消息活动图
四、详细设计
本系统采用B/S设计模式,系统分为客户端和服务器端,客户端包括登入模块、公聊模块、私聊模块、功能设置模块、和客户端功能实现模块等。
服务器端包括服务器功能实现模块、用户监控模块等。
初始页面图:
1、登入及功能介绍
图4-1 登入时序图
在设置好IP和端口号的条件下,用户在登入界面输入已注册好的用户名和密码登入,通过验证后登入聊天室主界面,输入错误返回提示。
2、公聊及功能介绍
图4-2 公聊时序图
用户在公聊界面的信息输入框中输入要发送的信息,点发送按钮实现信息的发送。
并可以显示其他用户发送的公聊信息和系统所发送的系统信息,并且按照发送来的信息中包含好的显示方式正确显示出信息。
用户上线或下线时要在显示窗体中给出提示,并刷新用列表中的用户名。
并可以通过双击用户名弹出与该用户进行私聊的对话窗体。
3、私聊及功能介绍
图4-3私聊时序图
用户在私聊界面的信息输入框中输入要发送的信息,点发送按钮实现私聊信息的发送。
并可以显示其他用户发送过来的私聊信息,并且按照发送来的信息中包含好的显示方式正确显示出信息。
4、发送系统消息及功能介绍
图4-4系统消息时序图
服务器端收到用户上线或下线时发送给其他在线用户消息提示,并可以根据需要,主动发送消息给客户,实现服务器端的管理。
五、测试举例
为了确保本系统能够正常运行,需要在发布之后做一次较全面的测试。
现将具体操作及过程举例说明如下:
1、测试程序登录界面
打开浏览器后,输入登陆的URL后,首先出现的是登录页面,填写个人ID,如果连接服务器成功则提示用户输入的用户名和密码是否正确,否则提示连接不到服务器,并提示正确输入服务器URL。
2、测试程序主界面
进入主界面后,主页面会显示在线用户列表区、信息显示区、信息发送区。
用户可以在用户列表中看到目前在线的其他用户,并在信息显示区内看到系统提示。
用户可以在信息发送区内输入自己的发送内容。
可以通过单击用户列表名中的用户弹出私聊窗体,进行私聊,发送的信息其他用户不可以见。
在主界面的显示区中可以不断的查看到其他用户发送过来的信息,并可以通过点击查看记录按钮查看保存的聊天记录。
3、测试程序退出
当单击退出按钮或窗体的关闭时,用户将发送退出信息,离开聊天室,其他用户可以得到系统提示用户下线并刷新用户列表。
当服务器出线异常或关闭时,客户端将提示服务中断并退出系统。
4、用户验收测试
在系统测试完成后,进行用户的验收测试,它是用户在实际应用环境中所进行的真实数据测试。
六、有待改进之处
由于一直专注于功能的实现,从而忽略了界面的设计,本软件在界面的美观方面可以更加的人性化,使用更多的自定义功能,方便用户设置自己的喜好和风格。
参考文献:
[1]内格里诺《JavaScript基础教程》人民邮电出版社第6版
[2]阮文江《JavaScript程序设计基础教程》人民邮电出版社第1版
[3]弗拉纳根《JavaScript权威指南》机械工业出版社第5版
[4]海尔曼《深入浅出JavaScript》人民邮电出版社第1版
[5]RossHarmes / DustinDiaz《JavaScript设计模式》人民邮电出版社第1版
ANewChattingRoomImplementationBasedonNode.js
Abstract:
JavaScriptsinceitsbirthin2009,hasbeenthefront-endengineer'spatent,theprospectsforthetechnologycommunity.JavaScriptinauniqueeventdriven,asynchronousprogrammingfeatureswasawardedas"designedforwebservices.ThisarticleisbasedontheNode.Jseventdrivenandasynchronousprogrammingprinciple,ismorethanonebasedonconnectioneventsinthechatroomexamplescombinedwithHTML5toshowJavaScriptWebSockettechnologyprospectsinthefieldoftheback-endservers.
Keywords:
JavaScriptBack-sideprogrammingNode.jsAsynchronousProgramming
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 结合 实例 浅析 Nodejs 聊天室 系统