范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

基于HTML5的实时Web数据监测系统的设计与研究论文

  随着人们对信息实时性需求的不断提高,实时Web技术越来越受到人们的重视。例如,实时在线版网络游戏、在线购票系统等都是实时Web的典型代表。有国外媒体称"实时Web的时代即将到来,实时Web不仅仅是一种时尚也是一种技术趋势"。客户端数据的实时性要求服务器能主动向客户端实时发送数据,将最新的消息通知用户。传统的Web应用中,服务器都是响应浏览器请求发送数据给客户端,而客户端并不知道服务器数据何时变化,因此,无法做到真正的实时性。随着HTML5技术的发展,通过HTML5的WebSocket技术和Canvas可实现真正实时Web的需求。为此,构建基于HTML5的实时Web数据监测系统,与传统实时Web技术相比,有效地减少了网络延时和吞吐量。
  1 传统实时Web技术
  传统实时Web技术是基于HTTP协议(超文本传输协议),HTTP协议下的服务器和客户端的信息交互方式为:客户端发送请求到服务器端,服务器端接收并处理客户端请求后返回结果给客户端,然后断开连接。由于HTTP协议是无状态协议,对于实时性要求比较高的Web应用,当客户端准备呈现服务器端的响应数据时数据可能已经过时,如果用户想要获得实时性信息需要不停地刷新页面,这显然是不明智的。目前,实时Web的实现形式主要是轮询和其他服务器推送,最常用的主要是轮询和长轮询技术。
  1)轮询技术。客户端以固定频率向服务器发送HTTP请求,通过服务器端响应请求实现实时性。显然,消息传递之间如果有准确的时间间隔,轮询是一个很好的方法,但是通常实时数据之间的时间间隔是不可预知的,实时数据何时发生改变无法预测,若频率过高会加重服务器负载和网络负担,频率过低会丢失重要数据,并且每次连接需要发送HTTP报头而产生网络噪声。因此,轮询技术是一种很低效的实时通信方案。
  2)长轮询技术。客户端向服务器发送请求后,在一段时间内服务器会保持打开状态,在此期间,如果服务器收到发送消息通知,会发送数据到客户端,客户端接收到数据时重新发送请求信息。然而,当数据量较大时,长轮询对于传统轮询方式并无性能改善。从以上分析可知,传统实时Web存在的缺陷是服务器端和客户端缺少全双工、稳定的长连接。
  2 相关技术与开发环境
  2.1 WebSocket技术HTML5为继HTML4.01后由W3C(万维网联盟)和WHATWG(Web超文本应用技术工作组)共同开发的一个全新版本的HTML。WebSocket作为HTML5的一种新的协议,它提供了一种全新的服务器-客户端的异步通信方法,弥补了传统实时Web的缺陷,成为未来实时Web应用的首选方案。
  WebSocket协议和WebSocket API分别为Web-Socket的理论和实践部分。WebSocket协议由握手和数据传输2个阶段构成。TCP建立连接后首先要进行WebSocket层的握手操作,这个阶段非常简单,客户端给服务器发送HTTP请求,服务器响应客户端请求。
  这个阶段的数据传输都基于文本,与现有的HTTP1.1相兼容。握手成功后进入数据传输阶段,这个阶段脱离了HTTP协议。WebSocket API由W3C制定,在WebSocket API中客户端和服务器端只需一个交互信息,客户端和服务器端就建立了一条全双工的信息传输通道,可直接相互传输数据,类似于TCP/IP。这种技术不仅为实时Web应用节省了大量的服务器带宽和资源,而且能满足实时性的需求。
  2.2 WebSocket服务器
  WebSocket协议基于B/S架构,因此要实现Web-Socket协议,必须要有WebSocket服务器。目前Web-Socket服务器的开源实现有很多,例如:
  1)Kaazing WebSocket Gateway(Java实现的Web-Socket服务器);
  2)Netty 3.0+(Java实现的WebSocket服务器);
  3)Node.js(JavaScript实现的WebSocket服务器);
  4)mod_pywebsocket(Python实现的WebSocket服务器);
  Node.js是由Ryan Dahl发起的开源项目,现由Joyent公司管理维护。Node.js是可以让JavaScript在服务器端运行的平台,它可以让JavaScript既可在浏览器端又可在服务器环境下运行。Node.js与其他服务器语言相比优势有以下几点:
  1)Node.js采用V8引擎,大大提升了JavaScript代码的运行速度。
  2)Node.js摒弃了传统平台采用多线程实现高并发的方法,采用了单线程、异步式I/O、事件驱动的方式,不仅摆脱了多线程所带来的困扰,也使性能得到了巨大的提升,提高了开发效率。
  3)Node.js充分考虑了数据的实时性,是一个为实时Web而诞生的平台。通过Node.js与WebSocket的合作,可开发实时性要求较高的Web应用。
  2.3 客户端图形实时呈现
  如今,实时Web应用的`开发者越来越注重用户的体验度,将繁杂的数据进行可视化可向用户更加简单、直观地展示数据的变化,减少用户整理和思考的时间。目前,互联网上的数据可视化工具有很多,例如Spss、Matlab、Excel、Tableau Desktop、Echarts等。其中,Spss更加注重统计分析,但图表与其他软件的兼容性较差;Matlab需要很强的编程能力,更偏向于科学方面的可视化处理;Excel输出图表无交互性,不能进行动态数据的可视化处理;Tableau Desktop需要收取较高的费用。
  HTML5中的Canvas元素提供了可进行绘图的平台,采用JavaScript语言对其操作可绘制理想的图形,通过Canvas元素可对系统的实时数据进行可视化处理。Echarts(Enterprise Charts商业产品图表库)是基于Canvas使用JavaScript语言编写的可视化图表库,而且拥有动态数据接口。通过Echarts的动态数据接口,可对系统的实时数据进行可视化处理。
  2.4 开发工具及开发环境
  Web程序主要是在浏览器上观看运行效果,在后端服务器和浏览器中完成调试和运行Web程序,选用Editplus作为编辑器,可在编码过程中对代码进行高亮显示,提高编程效率。目前浏览器对HTML5的支持程度良莠不齐,系统选用Google Chrome浏览器(版本35.0.1916.114m)作为开发和测试环境,与其他浏览器相比,Chrome打开速度快,用户体验好。服务器端安装Node.js(版本0.10.26)及Node.js的包管理器NPM(版本1.4.3)。在Windows系统中安装Node.js非常简单,访问http://nodejs.org下载安装包后点击Next就可以自动完成安装,通过这种方式还自动安装了Node.js的包管理器NPM。另外,在命令提示符中输入node,即可测试Node.js是否安装成功。
  3 构建实时数据监测系统
  3.1 系统结构
  实时Web数据监测系统由服务器端和客户端2部分构成,其系统结构如图2所示。服务器端主要采集和推送数据,客户端主要实现动态数据接收控制和显示等功能。
  3.2 系统流程图
  基于WebSocket实时数据监测系统的流程图如图3所示。从图3可看出,WebSocket服务器主要功能通过WebSocket接口来响应客户端事件,客户端通过WebSocket对象监听事件,通过触发OnMessage接收数据并动态显示数据。
  3.3 基于Node.js的WebSocket服务器端实现Node.js-WebSocket是专门为WebSocket服务器开发的Node.js模块,通过直接调用Node.js-Web-Socket模块封装的方法可轻松构建属于自己的Web-Socket服务器。Node.js-WebSocket模块的使用及通过模块中的相关函数构建WebSocket服务器过程为:
  1)在Node.js中通过NPM 包管理器执行程序
  "NPM install Node.js-WebSocket"安装Node.js-Web-Socket模块。
  2)通过Node.js提供的require函数调用Node.js-WebSocket模块,并运用其中的createServer()创建服务器对象,开始监听客户端请求,客户端发出请求后,WebSocket服务器端和客户端开始建立连接。
  var ws=require("nodejs-websocket");
  //调用Node.js-WebSocket模块
  var server= ws.createServer(function(conn){
  }).listen(8001);
  上述代码创建WebSocket服务器对象并监听8001端口。
  3)注册事件并为事件指定响应的函数。本代码注册了text、error、close三个事件:
  a)text,当服务器接收到客户端字符串时触发;
  b)error,连接过程中发生错误时触发;
  c)close,当WebSocket连接关闭时触发。
  WebSocket服务器接收到客户端字符串时触发text事件,进而调用相应的函数,将Mysql数据库中实时数据发送给客户端。例如:
  conn.on("text",function(str){console.log(" 收到的信息为:" +str)
  sendmess()//发送实时数据到客户端})
  conn.on("close",function(code,reason){
  console._浃鉥K]log(" 关闭连接" )})
  conn.on("error",function(code,reason){
  console.log(" 异常关闭" )})
  WebSocket服务器编写完毕后保存文档为Web-Socket.js,打开终端,进入WebSocket.js所在的目录,执行node WebSocket.js命令即可运行WebSocket服务器。
  3.4 WebSocket客户端与Echarts实时数据显示WebSocket客户端只需要绑定相应地址和端口并与服务器建立连接,可接收服务器推送的数据,因此,WebSocket的客户端很容易使用。具体步骤为:
  1)创建连接。首先需要新建一个WebSocket对象,并传入相应的URL,WebSocket创建完成后,页面可连接服务器。
  var ws=new WebSocket('ws://192.168.17.80:8001')
  上述代码创建了WebSocket对象,其中URL由3部分组成,分别为通信标记(ws)、主机IP和端口号。
  2)监听事件。WebSocket对象拥有4个事件:on-Open、onClose、onError和onMessage。
  a)onOpen:WebSocket服务器建立完成时触发;
  b)onClose:WebSocket服务器关闭时触发;
  c)onError:WebSocket服务器创建过程中发生错误时触发;
  d)onMessage:客户端收到服务器端数据时触发。
  WebSocket服务器发送数据给客户端时触发on-Message事件,通过onMessage事件将实时数据传入Echarts图表的动态接口。例如:
  ws.onopen=function(e){console.log(" 连接服务器成功" )
  ws.send("game1");}
  ws.onclose=function(e){console.log(" 服务器关闭" );}
  ws.onerror=function(e){console.log(" 连接出错" );}
  ws.onmessage=function(e){data2=e.data;}
  3)数据显示。Echarts拥有动态数据接口,将数据库动态数据传入动态数据接口就可展示实时数据,例如:
  myChart.addData([//动态数据接口addData
  [0//系列索引
  data2,
  //新增数据,data2为服务器发送给客户端实时
  //数据
  False//新增数据是否从队列头部插入
  false//是否增加队列长度
  4)主动关闭连接。若客户端认为通信已结束,可调用disconnect()函数关闭连接:ws.disconnect()。图4为采用该实时数据监测系统开发的实时温度数据显示图。其中,X 轴为动态并持续更新最新时间,Y 轴为对应时间的温度值。由此可对温度数据进行实时监测。
  4 轮询与WebSocket服务器推送方式的测试
  4.1 网络延时
  图5为Ajax长轮询与WebSocket服务器推送方式的网络延时对比。从图5可看出,Ajax轮询方式下客户端与服务器之间的平均延时为50ms,为了保持连接,服务器与客户端需不断进行请求和响应的操作,从而造成多次延时,并且延时中服务器无法向客户端发送消息,从而造成资源浪费。WebSocket模式下,服务器和客户端只在第一次握手连接时会造成延时,握手连接成功后客户端无需向服务器发送请求,服务器主动发送消息到客户端,从而减少了网络延时,提高了系统的实时性。
  4.2 网络吞吐量
  本次实验中,Ajax长轮询的请求和响应的报头大小为734Byte,不包含任何数据。采用WebSocket技术,消息为一个数据帧,开销为2Byte。3种情景下连接数增加时Ajax长轮询和采用WebSocket技术的网络吞吐量对比情况如图6所示,其中1000个用户Ajax长轮询和Websocket的网络吞吐量分别为5.6、0.015Mbit/s,10 000个用户Ajax长轮询和Websocket的网络吞吐量分别为56、0.15Mbit/s,100 000个用户Ajax长轮询和Websocket_K]P_浃的网络吞吐量分别为560、1.526Mbit/s。可见,随着用户的增加,WebSocket的吞吐量明显低于Ajax长轮询。
  5 结束语
  构建了基于HTML5的实时Web数据监测系统,能将数据(如温度、湿度、电压、电流等)实时发送到客户端,客户端通过Echarts对数据进行直观显示。与传统实时Web技术Ajax轮询对比测试结果表明,HTML5能大大减小网络延时和吞吐量。随着HTML5协议的完善,基于HTML5的实时方案将会被大量应用。

微课在小学语文教学中的应用论文微课作为一种新型的教学模式和学习方式,它以短小精炼生动直观精准到位等特点突破了传统语文课堂教学的时空限制,给枯燥的课堂带来生机,激发了学生的学习兴趣,调动了学生学习的积极性,提高了微课在汉语拼音教学中的应用论文摘要汉语拼音教学是小学低年级语文教学的基础,是学生识字和学习普通话的前提,只有让学生充分掌握了汉语拼音,才能够进行更深入的语文教学活动。所以,需要运用一些方法进行小学汉语拼音的教学微课在C语言程序设计教学中的应用论文摘要随着我国教育水平的不断进步,微课已广泛应用于各种教学科目。本文对微课进行了深入的研究和分析,重点阐述了微课自身的特点及在C语言设计教学中的具体应用,以解决传统课堂模式中存在的一新课标下函数概念的教学探析论文新课程标准注重体现知识的发生发展形成的过程促进学生的自主探究,强调学生探索新知识的经历和获得新知的体验不再让数学教学脱离学生的内心感受,这也是在课堂进行有效教学时所追求的目的,所以感性工学在木制民居造型设计中的作用论文摘要研究符合旅游区苗族居民情感需求的木制民居设计。方法以感性工学知识作为指导,广泛收集木制民居造型样本和感性词汇,分解设计要素,建立感性评价体系,并进行问卷调查,建立感性词汇与造型培养学生的主动探究能力教育论文课堂是学生人生中一段重要的生命经历,它应该成为学生生命中有价值的组成部分。因此,我们的课堂应成为学生生命发展的课堂,使每个学生在40分钟里充满生气与活力,相互用智慧启迪智慧用思维碰高层建筑厚板式转换层分析的论文1工程概况湖南某商住综合楼工程地下3层,地上30层,建筑物总高度102m,建筑面积65000m2。工程设有3层裙房,裙房为框架结构,做商务办公和大型超市。在塔楼四层上设有厚板式结构中学语文教学改革的七大基本流派论文改革开放十多年来,广大语文教学工作者,在传统教学基础上锐意改革,开拓进取,逐渐形成了不同的教学流派。北京市教师进修学校孟宪伦老师将目前我国中学语文教坛颇有影响的几种流派作了总结。1班主任班级管理艺术探讨论文摘要班主任是学生在校生活的引领者和管理者,是学生人生跑道上的陪跑者,只有班主任精心管理班级,为学生提供一个健康积极的成长环境,才能使学生过一个充满意义的校园生活,让学生更加健康地成水电站机组检修安全管理探讨论文1自主检修安全管理前期策划一项工作成功与否,结果是否满足计划要求,策划工作非常重要。高凤山电站在C级自主检修工作开始前,电厂领导要求相关人员进行了充分的准备工作。1。1C级检修风险2017最新有关线程池介绍论文线程池是Mysql5。6的一个核心功能,对于服务器应用而言,无论是web应用服务还是DB服务,高并发请求始终是一个绕不开的话题。当有大量请求并发访问时,一定伴随着资源的不断创建和释
高校科技查新工作的协同创新发展研究关键词高校图书馆查新机构科技查新协同创新摘要高校科技查新工作正面临从狭义科技查新向广义科技查新的转型。协同创新是高校查新工作创新发展的必然选择。科技查新服务能力的拓展广义科技查新服初中历史教学中如何引导学生正确地评价历史人物众所周知,人文学科关键的是人,历史是由时间地点人物事件等几大要素构成的。有了人,我们就开始有了历史,且历史不过是追求自己的目的的人的活动而已。所谓历史人物,是指在历史发展长河中对社多彩作业,提升学生历史素养深刻反思自己多年的高中历史教学,其中一个突出的问题是历史作业形式过于单一,只限于填空选择问答等传统模式,这样的作业形式虽然也能够对学生学习历史起到一定的促进作用,但是,学生对这种作浅析中学生思想品德教育面临的问题及其对策现阶段,社会在迅速的发展着,学生的思想政治教育越来越重要,中学生是祖国的未来,关乎着国家的前途和命运,而且中学生正是处于思想品德的形成期,在这个时期是思想品德的关键时期,正是在这个图书馆业务外包及其策略关键词图书馆业务外包策略摘要业务外包在图书馆的应用主要集中在事务性工作和采编工作方面,随着信息时代的到来,图书馆服务功能发生变化,业务外包在图书馆的应用将有更大的发展空间。中图分类互联网对跨系统公共文化服务信息圈建设的启示摘要随着中国移动互联网的快速发展,互联网公共文化服务的实践探索成为公共文化服务体系建设的新内容。本文从移动互联网的发展趋势出发,分析了公共文化服务在移动互联网发展进程中的机遇与挑战浅析林白作品中的意象对社会政治历史话语的解构林白在许多访谈中多次提到,自己并不是刻意要走进女性主义作家群,但她作品中所显示出的性别自觉意识与个人化写作特点却很明显。这些显露的特征并不仅仅是林白对于男性话语权的反抗,更内在的应历史视域下的华北乡村社会研究小农经济,即自然经济,以美国和日本的学者研究为胜,并取得了显著的成就。其中,黄宗智教授所著的华北的小农经济与社会变迁是杰出的代表,1985年荣获东亚历史最佳费正清奖,奠定了其在汉学英语论文电影翻译中文化意象的重构修润与转换英语论文电影翻译中文化意象的重构修润与转换英语论文电影翻译中文化意象的重构修润与转换英语论文电影翻译中文化意象的重构修润与转换摘要电影翻译中文化意象重构能及时有效地吸引广大观众。而论翻译者的个人风格论翻译者的个人风格论翻译者的个人风格论翻译者的个人风格摘要从翻译风格的倾向性互补性和多样性来阐述翻译者的个人风格在翻译过程中是如何参与其事的,并大胆地提倡要重视译者个人风格的追求。浅谈旅游英语翻译浅谈旅游英语翻译浅谈旅游英语翻译浅谈旅游英语翻译摘要中英文的差异是不言而喻的其中的文化差异在旅游英语翻译中体现在历史审美宗教风俗习惯诸方面故旅游英语翻译的方法包括解释类比增加删减等