结合实例浅析Node.js的聊天室系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

结合实例浅析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、登入及功能介绍用户服务器数据库3:发送登入信息1:连接数据库2:连接成功4:发送登入信息5:登入成功7:6:登入失败图4-1登入时序图在设置好IP和端口号的条件下,用户在登入界面输入已注册好的用户名和密码登入,通过验证后登入聊天室主界面,输入错误返回提示。2、公聊及功能介绍本地文件用户服务器其他在线用户本地文件6:文件输入流读取5:文件输出流保存1:发送聊天信息2:发送消息3:文件输出流保存4:文件输入流读取图4-2公聊时序图用户在公聊界面的信息输入框中输入要发送的信息,点发送按钮实现信息的发送。并可以显示其他用户发送的公聊信息和系统所发送的系统信息,并且按照发送来的信息中包含好的显示方式正确显示出信息。用户上线或下线时要在显示窗体中给出提示,并刷新用列表中的用户名。并可以通过双击用户名弹出与该用户进行私聊的对话窗体。3、私聊及功能介绍用户本地文件服务器目的用户本地文件6:文件输入流读取5:文件输出流保存1:发送聊天信息2:发送消息3:文件输出流保存4:文件输入流读取图4-3私聊时序图用户在私聊界面的信息输入框中输入要发送的信息,点发送按钮实现私聊信息的发送。并可以显示其他用户发送过来的私聊信息,并且按照发送来的信息中包含好的显示方式正确显示出信息。4、发送系统消息及功能介绍系统管理员服务器在线用户1:发送系统信息2:发送消息图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.jsAbstract:JavaScriptsinceitsbirthin2009,hasbeenthefront-endengineer'spatent,theprospectsforthetechnologycommunity.JavaScriptinauniqueeventdriven,asynchronousprogrammingfeatureswasawardedasdesignedforwebservices.ThisarticleisbasedontheNode.Jseventdrivenandasynchronousprogrammingprinciple,ismorethanonebasedonconnectioneventsinthechatroomexamplescombinedwithHTML5toshowJavaScriptWebSockettechnologyprospectsinthefieldoftheback-endservers.Keywords:JavaScriptBack-sideprogrammingNode.jsAsynchronousProgramming

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功