




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分类号 单位代码 密 级 学 号 学生毕业设计(论文)题 目基于WebSocket的物联网实时通信技术应用作 者XXX院 (系)信息工程学院专 业计算机科学与技术指导教师XXX答辩日期 2014 年 5 月 17 日XXX毕业设计(论文)诚信责任书本人郑重声明:所呈交的毕业设计(论文),是本人在导师的指导下独立进行研究所取得的成果。毕业设计(论文)中凡引用他人已经发表或未发表的成果、数据、观点等,均已明确注明出处。尽我所知,除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经公开发表或撰写过的研究成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人毕业设计(论文
2、)与资料若有不实,愿意承担一切相关的法律责任。 论文作者签名: 年 月 日摘 要物联网技术是当代信息技术的重要组成之一,与名同义,物联网就是连接物品的网络。物联网通过智能感知、识别技术与普适计算、广泛应用于网络的融合中,形成人与物、物与物相联,实现信息化、远程管理控制和智能的网络1。物联网用途广泛,遍及医院护理、照明管控、智能交通等多个领域。本文将物联网技术和WebSocket技术相结合,设计并实现了一个小型的远程心率检测及报警系统的上位机,以求减少医院在人力物力方面的投入,方便医生在远程通过客户端浏览器实时查看病人的心率。为了扩大使用范围和便于日后的升级维护工作,系统结构采用B/S模式,在后
3、台利用传感器采集患者的心率信息并将其发送到服务器端,服务器在接收心率信息的同时利用WebSocket技术实时推送心率信息到客户端浏览器,供医生查看和分析。最后的测试结果显示本系统操作简便,具有良好的可扩展性,在效率方面也符合心率检测在实时性方面的要求。关键字:物联网、传感器、WebSocketABSTRACTThe technology of the Internet of things is one of the important components of modern information technology, and the name of Internet of things
4、is synonymous, connecting articles network. Internet of things through integration of intelligent perception, recognition technology and pervasive computing, is widely used in network, form a connected people and things, things and things, to realize the information management, remote control and in
5、telligent network . The Internet of things is widely used in many fields, hospital care, lighting control, intelligent transportation.In this paper, the network technology and WebSocket technology, the design and implementation of a remote computer heart rate detecting small and alarm system, in ord
6、er to reduce hospital in human and material resources, convenient for the doctor to the client browser view real-time heart rate in patients with remote. In order to expand the scope of use and which is convenient for future maintenance work, the system uses the B/S mode, in the background using hea
7、rt rate sensor were collected and sent to the server, the server in the receiving rate information and at the same time, using the technology of WebSocket real-time push heart rate information to the client browser, for the doctor to view and analyze. The final test results show that the system is s
8、imple, has good scalability, in terms of efficiency but also meet the requirements of heart rate detection in real-time.Keywords: Internet of things, Sensor, WebSocket目 录摘 要IABSTRACTII第一章 绪 论11.1研究背景及意义11.2国内外现状11.2.1国外物联网现状11.2.2国内物联网现状31.3论文组织结构4第二章 相关技术介绍52.1物联网技术简介52.2 Nodejs技术52.3 jQuery Flot62
9、.4 HTML5 WebSocket72.4.1 WebSocket简述72.4.2 WebSocket的优势72.4.3 WebSocket 握手协议102.4.4 WebSocket 接口112.4.5 浏览器和服务器支持情况132.4.6 WebSocket的局限性142.5 本章小结14第三章 系统分析与设计153.1心率检测系统分析153.2 系统需求分析153.3 系统架构163.4 服务器推送技术可行性分析163.5 服务器端设计173.6 客户端设计203.7本章小结26第四章 系统性能测试及结果274.1 服务器端测试274.2 客户端测试274.3 本章小结30第五章 总结
10、与展望315.1论文工作总结315.2展望31参考文献32致 谢33第一章 绪 论1.1研究背景及意义物联网技术的出现对社会的发展产生了深刻的影响,它在现有网络的基础上结合当代传感技术将一切智能的物体互相连接起来用以方便人们的衣食住行2。物联网的强大之处在于它可以把你所能想象到的任何物品都连接到网络上,同时可以对它们进行管理、控制或者监控。目前,物联网技术已广泛用在工业控制、环境保护、医疗护理、照明管控、智能交通、智能家居、智能消防、水系监测、食品安全和国防安全等多个领域。物联网的应用前景非常广阔,它给人们带来的方便也是想象不尽的,本文尝试从物联网实时通信着手,构建一个供医院对病人心率进行实时
11、检测的心率检测系统。由于通过分析心率信号可以判断一个人的健康状况,所以对这类生理信息进行日常监护与检测对患有心血管疾病的患者和老年人的预防诊治有及其重要的意义。尤其是对这些生理信息进行持久的跟踪记录,就可以依据这些记录的变化和走势大致了解患者的健康趋势。1.2国内外现状物联网的概念来自于麻省理工学院的Auto-ID研究中心,它是由Kevin Ash-ton教授于1999年最早提出,起先,它的含义是指所有物品通过射频识别传感装置连接到Internet,实现智能化识别和控制。2005年11月17日在在突尼斯举行的信息社会世界峰会上,国际电信联盟(ITU)对物联网的概念进行了扩展,提出了何时刻、任何
12、地点、任意物体之间的互联,无所不在的网络和无所不在的计算的新概念。从此物联网的覆盖范围也得到了大大的拓展,它不再是单纯的基于射频识别的物联网,而是指包括射频识别、激光扫描、GPRS、气体感应等多种新技术的物联网。1.2.1国外物联网现状目前,国外对物联网的研究主要集中在欧洲各国、美国、日本和韩国等国家中,这些国家都对物联网的研究与应用给予高度重视,在政策上提供了大力支持,视物联网为提升综合国力和促进经济发展的重要动力,同时相继启动了以物联网为基础的国家性区域战略规划。现阶段各国物联网的发展现状如下:1.欧盟针对物联网技术的研究和发展,欧盟专家们提出了基于物联网技术的“行动计划”,该计划详细描述
13、了物联网技术的应用前景,并且强调了欧盟各成员国对物联网管理的决心,以努力确保欧盟在物联网研究进展中的话语权。为了实现欧盟在物联网智能基础设施开发方面领先世界的目标,欧盟启动了超过90项的物联网项目研究,其中单独对ICT的研发投资就高达4亿欧元,此外欧盟还于2011到2013年期间每年新增2亿欧元进一步加强研究的进度,同时专项拨款3亿欧元用于帮助物联网公司的项目建设3。在管理上欧盟制定了统一的物联网标准,同时还提供了一个有效的分布式管理架构,用于方便其各子管理机构公开、公平、尽职地履行管理职责。欧盟的物联网研究领域囊括了汽车、能源、航空、航天等18个应用领域,以及架构、识别和数据处理等12个关键
14、技术领域。目前欧盟已经实施的物联网应用有药品公司使用专用序列码标识药品、电能公司向用户提供智能电子计费系统、各汽车公司开始生产智能汽车等。与此同时,许多以物联网应用为目标的小公司的新创意、新产品也在不断的丰富着欧盟的物联网市场。2.美国2009年奥巴马就IBM公司首席执行官提出的“智慧地球”概念,将物联网列为振兴经济的两大重点之一,同时开启了大量的物联网技术研究。奥巴马政府在鼓励物联网技术发展的政策方面主要体现在能源的推广,宽带和医学三个领域。2009年经济复苏和再投资法的提出意在从医疗、科技、教育、能源等领域着手,通过增加政府的投资配合政策的便利促进物联网技术的研究和应用。到2013年,美国
15、已经完成了物联网平台的开发,开发者通过该平台可以利用无线网络进行物联网开发。随后思科公司在物联网平台的基础上,实现了无线家庭安全控制面板,思科因此获得了2012年度物联网行业突出贡献奖的提名。另据思科报告称,物联网将会是下一个万亿美元级别的新兴信息技术产业,而美国将会占据未来物联网市场份额的三分之一4。3.日本2004年日本提出了基于物联网的国家信息化战略U-Japan,策略的目的是为了促进新一代信息技术革命的诞生,使日本成为一个无处不在的便利社会。日本政府从汽车产业、建筑行业、能源行业和远程监控等方面着手,在这些领域广泛推广物联网技术及其产品的应用。在日本社会,物联网已经渗透到了人们生活的基
16、本必需品中,日本最新推出的智能家电可供用户利用手机点餐、通过手机查看和管理任何连接到物理网的家用电器的运行状态,比如,通过远程网络调节空调的温度、控制电饭煲做饭、控制热水器烧水,不管人在什么地方,只要通过物联网就可方便的监控和管理自己的住宅。据2012年的数据显示,日本已有约317万多的物联网用户,这些物联网用户主要遍及在电子商务、监控、交通、物流等9个领域5。从日本物联网技术发展的趋势可以预见,在未来通信行业将会是日本物联网发展的重点,并且这一行业的发展会冲击日本已达饱和状态的手机放号市场,给日本的经济发展带来新的动力。4.韩国和日本一样,韩国同样重视物联网在本国信息产业中的发展和应用。早在
17、97年韩国就曾提出在2011年之前完成韩国物理网普及的短程规划,期间韩国政府就物理网的研究制定了8项专项计划。2010年韩国效仿美国将物联网列为促进韩国社会经济增长的重点,积极推进韩国物联网社会的建设和发展。到目前韩国基本上完成了基于IPV6的物联网基础设施的建设,这一建设的完成极大的提高了韩国通信网络的质量,为韩国物联网的商业化作了基础性铺垫。一流的物联网基础设施不仅巩固了韩国的国防安全,而且对韩国的教育行业、医疗行业、食品行业、航空工业都产生了巨大的影响。物联网技术的应用已深刻的融入了韩国民众的日常生活中,在韩国包括农业、工业、娱乐业随处可见智能的物联网技术产品,有数据统计韩国在2013年
18、的物联网产业规模就高达50万亿韩元5。1.2.2国内物联网现状我国的物联网研究起步比较晚,在2009年温家宝总理的“感知中国”讲话之后,我国政府才将物联网列为国家新兴战略产业,并在江苏省无锡市建立了第一个物联网研究中心。虽然如此,但是我国的物联网技术研发水平仍居于世界前列,目前我国还是物联网标准的主导国之一,我国在物联网领域拥有的专利数量最多。这些完全得益于我国拥有特殊的发展物联网的现实背景,首先,我国的无线通信网络和覆盖率都很高,具有发展物联网的基础。其次,我们国家是世界第二大经济体,拥有雄厚的经济实力发展物联网。在国家宏观的政策鼓励下,各省份的物联网发展势头迅猛,取得的成就也数不胜数。例如
19、,西安的优势微电子公司于2009年成功了研制出“唐芯1号”物联网芯片,至此打开了我国攻克物联网技术的大门。2010年江南大学组建了全国第一个物联网工程学院,用于培育物联网技术专业人才。2011年长安大学建立了全国第一个国家级的科技园,重点发展RFID技术。2012年重庆邮电大学研发的“渝芯1号”芯片将我国物联网技术带入了物联网领域的领先水平。现阶段我国的物联网发展问题主要是,一、缺乏核心技术,读写器和芯片过度依赖其他国家。二、RFID技术标准缺位。三、市场因素限制RFID标签量化应用。四、国内企业没有竞争优势,管理理念保守。针对我国的物联网现状,我国的物联网发展目标是把我国建设成为一个物联网技
20、术创新性的国家,(1)自主创新能力明显增强,(2)具有国际竞争力的产业体系,(3)物联网水平显著提升6。物联网作为新兴推动世界经济高速发展的动力因子,在2011我国的物联网产业规模已达到2.5千亿人民币,预测数据显示这一数据在2015年会高达5千亿元。伴随着国家政策的主导和物联网技术的不断革新,物联网将会对提升我国国民经济生产力产生越来越大的影响力,它会更加彻底的改变我们的生活方式。1.3论文组织结构本文首先研究和分析了国内外物联网的发展状况,接着对HTML5中的WebSocket协议进行了深入研究,通过对HTML5 WebSocket协议和传统服务器推送技术的对比分析,得出了HTML5的We
21、bSocket在实时领域的吞吐量优势和时延优势。最后将HTML5 WebSocket和Nodejs技术相结合应用于项目中进行验证,结果指明了HTML5 WebSocket在实时领域的优越性与可行性。本文一共分为五章,各个章节的具体内容安排如下:第一章:绪论。在绪论中对心率检测系统的研究背景和意义做了简要的说明,引出了本论文的研究目的,然后对物联网的国内外现状进行了全面阐述,同时对物联网基础上的心率检测系统做出了概要介绍。最后对论文的框架结构进行了细致说明。第二章:相关技术介绍。首先大致介绍了物联网的概念,并且概况了物联网技术的主要特征和关键技术;其次,阐述了Nodejs作为高并发实时Web服务
22、器的强大性能及其优势所在;接着介绍了客户端图形显示的jQuery Flot库,最后详细介绍了WebSocket的概念,分析了WebSocket的特性和功能,同时对WebSocket的使用和浏览器、服务器支持情况进行了简单介绍。第三章:系统分析与设计。本章首先阐明了心率检测系统的现实意义,接着对心率检测系统的功能模块和系统架构进行了说明,在结尾利用WebSocket和Nodejs技术分别完成了系统的客户端和服务器端的实现。第四章:系统性能测试及结果。本章根据系统的功能描述有针对性的分别对客户端和服务器端进行了系统性测试,最后结果验证了系统的可行性。第五章:总结与展望。本章是对全文的总结和展望,对
23、论文进行总结是为了梳理知识脉络,查漏补缺方便以后继续研究。展望是提出个人对系统的预想,以方便后续研究的开展。第二章 相关技术介绍2.1物联网技术简介物联网是指在现有互联网的基础上,利用感知、识别、GPRS、激光扫描、气体感应等技术把物体连接到互联网上,实现物物之间信息交互的网络。利用物联网可实现随时随地的远程定位、监控和管理,物联网在本质上是互联网的延伸和拓展,它的核心是创新,任何涉及到信息技术的应用都可以划入物联网的范围,因此也有人说物联网是业务加应用的网络。物联网由五个层构成,分别是感知层、接入层、网络层、支撑层、和应用层:感知层:主要完成信息的收集与处理;接入层:主要负责各类设备的网络接
24、入;网络层:网络层为现有的互联网,主要完成信息的远距离传输;支撑层:支撑层又称中间件或者业务层,主要完成信息的表达与处理, 最终达到语义互操作和信息共享的目的;应用层:应用层主要完成服务发现和服务呈现的工作。物联网主要涉及三项关键技术:1. 射频识别技术(RFID):射频识别是一种基于无线电的对目标物识别并进行读写数据的通信技术。射频识别技术处于感知层,射频标签包含了利用磁信号存储的数据信息,主要被用于附着在物联网的终端物体上,通过射频标签就可以完成对标识物的自动识别和追踪。2. 传感器技术:传感器好比是人的感官器官,主要用于感知被测物体相关信息的一种物理检测装置,它利用材料自身的物理属性,将
25、检测物状态的变化以电信号的形式输出到接收端。传感器也是目前物联网应用中获取外界信息的主要途径和手段。3. 嵌入式技术:嵌入式技术是融合了计算机软硬件技术和集成电路技术的复杂技术。物联网中的一切智能终端产品无一不例外的都应用了切入式技术,切入式的表现形式主要是将具有特定功能的芯片嵌入到被管控的物体内部,以实现程序指令控制的目的7。2.2 Nodejs技术Nodejs是基于谷歌Chrome运行时构建的网络服务应用平台,它借助了Google的V8引擎性能好、速度快的优势,广泛的被用于搭建快速的,易于扩展的网络应用。Nodejs的特点是基于事件驱动的单线程模式,采用异步非阻塞的I/0流程运行,虽然No
26、dejs是单线程模型,但是它仍可以对多任务进行并行处理,事实上它是通过事件的轮询实现并行任务的操作的,也正因为如此使得利用Nodejs编写出的服务器应用程序即安全可靠而且便于扩展8。Nodejs的强大之处在于它支持Javascript运行在服务器端,因为浏览器所能支持的语言极其有限,所以要想在浏览器端和服务器端之间共享代码就只能使用JavaScript来完成,刚好Nodejs就支持这一点。此外,Nodejs还处在完善阶段,自2009年推出的轻量级API库到现在,在广大Nodejs爱好者和相关专家的不懈努力下,目前Nodejs已发布了大量的扩展库,这些扩展库以模块的形式划分不同的功能,其中有连接
27、数据库的模块、相关软件驱动的模块、加密模块、GUI模块和网络编程模块等,这些功能模块对Nodejs的开发提供了强有力的支持9。目前在工程上已经证明Nodejs和传统的服务器脚本相比,Nodejs的非阻塞I/O能够极大的提高程序并发的能力,其次在执行效率和成本上,Nodejs也大大超过了JAVA、RUBY和C语言开发的非阻塞服务,另外在代码量上Nodejs的表现也是最优和最简单的10。2.3 jQuery Flot Flot是一个基于jQuery的开源JavaScript库,是一个纯粹的 jQuery JavaScript 绘图库,主要被用来在网页上绘制图表。Flot具有体积小、运行速度快、支持
28、折线图、条形图、扇形图、堆栈图和实时更新图等多种图形显示的特点,因此深受广大网页开发人员的青睐。此外Flot是完全免费的,其自身尚在不断的扩充和完善当中,但这并不影响它的使用性能,因为对于一般的图形绘制,使用Flot完全可以实现用户的所有需求。Flot提供的接口非常简单而且功能丰富,在使用Flot绘制图形时只需按照五个步骤:1.引入档案,2.设置定位点,3.准备数据,4.定义轴属性,5.调用$.plot,使用不到20行的代码就可完成一张图表的绘制,所以这对没有绘图经验的开发人员来说是一个很不错的的选择,只要有JavaScript基础任何人都可以轻松掌握Flot。在执行效能方面, Flot可在一
29、张图形上完成1000个数据点以上的图形显示;在实时性方面,Flot可以100毫秒的速度完成一次图形的重绘;在交互性方面,Flot支持放大缩小以及鼠标追踪的功能。目前支持Flot的浏览器有IE、Firefox、Chrome、Safar及Opera等, 由于Flot使用了HTML5 的Canvas来绘制图表,所以对于IE8或是更早以前的版本,可能需要用excanvas模拟Canvas功能让Flot也可以在IE8及早前的版本中使用。2.4 HTML5 WebSocket在HTML5之前的web通信都是单向的,服务器在推送数据时不能接收浏览器的数据,浏览器在接收数据时不能发送信息给服务器。对于服务器和
30、浏览器需要双向同时通信的web应用在HTML4时代是无法实现的,相关应用只能以C/S的模型实现,其主要原因在于实现浏览器通信的http协议不能完成双工通信。为此WebSocket的提出就是为了解决此类问题,WebSocket是在HTML5中引入的新协议之一,利用WebSocket可实现浏览器和服务器之间的全双工通信。WebSocket出现的另外一个目的便是要代替以往的轮询技术和Comet技术,希望通过WebSocket协议将基于C/S的应用转移到浏览器上。2.4.1 WebSocket简述WebSocket是由WebSocket协议和WebSocket接口构成的,WebSocket协议主要负责
31、完成客户端和服务器端握手连接的建立,它允许使用任何服务器端的编程语言实现。当然只有浏览器和服务器都遵循了同样的协议,才能建立起TCP连接,才可以有后续的通信11。WebSocket接口主要是供程序员调用以完成特殊的功能,前端开发人员可以通过该接口提供的一些操作,访问实现了WebSocket的服务器,从而实现与服务器之间的实时通信。2.4.2 WebSocket的优势对于实时类的Web应用,HTML5提出了WebSocket的实现方式。和过去的轮询技术等相比,HTML5的WebSocket表现出了非常强大而且无法超越的优势。其中最重要的是降低了不必要的的网路开销。因为单独一次HTTP请求就会附带
32、超过大约800字节的HTTP头信息,但是如果使用WebSocket协议代替HTTP,那么每一个消息就都是以一个WebSocket帧的形式存在于网络上,总共也就只会占约2B左右的开销。随着网络访问用户量的增长,WebSocket网络开销的优势会越来越明显12。如图2-1所示:网络开销对比:图2-1 Ajax轮询与WebSocket网络吞吐量对比场景一 Ajax轮询:用例 A:1000 客户,每秒轮询一次,网络流量为 871×1000=871000B=6968000bit/s(6.6Mbit/s)用例 B:10000 客户,每秒轮询一次,网络流量为 871×10000=8710
33、 000B=69680 000bit/s(66Mbit/s)用例 C:100000 客户,每秒轮询一次,网络流量为 871×100000=87100000B=696800000bit/s(665Mbit/s)场景二 WebSocket:用例 A:1000 客户,每秒接收一个消息,网络流量为 2×1000=2000B=16000bit/s(0.015Mbit/s)用例 B:10000 客户,每秒接收一个消息,网络流量为 2×10000=20 000B=160 000bit/s(0.153Mbit/s)用例 C:100000 客户,每秒接收一个消息,网络流量为 2
34、215;100000=200000B=1600000bit/s(1.526Mbit/s)如图2-2所示,在降低网络流量方面HTML5的WebSocket的性能表现的非常出色。由于WebSocket只在同服务器建立握手连接的时候才发送一次请求,以后的所有消息传递都不需要再次发送请求,整个过程中服务器也就只处理一次请求。与处理轮询技术的大批量请求相比而言,WebSocket服务器的压力有了大幅度的降低13。时延对比:图2-2 轮询和WebSocket时延对比在图2-2中的上部分内容显示的是半双工轮询技术的运行过程,对图仔细分析就可得到如果消息的一次传输占用50ms的话,并且服务器端数据更新的比较频
35、繁时,采用轮询技术的数据推送方式会在这50ms内产生多个延迟,另外如果数据本身占用内存比较大时,服务器的内存就会被迅速的耗尽,严重时会直接导致服务器奔溃。图2-2的下部分显示的是WebSocket技术的工作过程,由于WebSocket提供了全双工的工作模式,服务器和浏览器之间的数据交互互不影响,消息的发送和所消耗时间也没有任何关系,因此不管是任何一方的数据发送都不会产生延迟的现象,当然服务也就不必为新接收的数据开辟额外的内存 14。另外,值得一提的是WebSocket穿越代理和防火墙的能力。由于WebSocket是基于HTTP_CONNECT代理协议的,所以浏览器和服务器之间的交互在本质上还是
36、然是一个HTTP请求,这个请求是一个经过申请协议升级的HTTP请求,服务器就是根据这个请求与浏览器建立连接的,由于HTTP协议是不受防火墙限制的,所以基于WebSocket的应用,自然也就具有超强的环境适应能力。最后,WebSocket开发简单方便。WebSocket提供的编程接口避免了开发人员与复杂的协议打交道,所以不了解通信协议的开发者,仍然可以开发出基于WebSocket的应用。2.4.3 WebSocket 握手协议前面已说明了WebSocket 协议是一个基于 TCP 的协议。它在HTTP的请求报头中添加了“Upgrade:WebSocket”的说明字段,服务器就是根据这条字段产生应
37、答和客户端建立WebSocket连接的,WebSocket连接是持久的它不像TCP连接有超时的限制15,WebSocket连接只有在客户端或服务器端中的任何一方主动发出关闭连接信息后才会中断。由于WebSocket到目前为止还没有以标准的形式推广,它的细节部分还处于不断完善阶段,所以不同时期可能有不同的WebSocket规范。本文介绍的是draft-hixie-thewebsocketprotocol-76版的 WebSocket 协议,该版本的WebSocket可在Open、Chrome和FireFox浏览器上执行。客户端请求服务端: GET /demo HTTP/1.1 Host: Con
38、nection: Upgrade Sec-WebSocket-Key2: 12998 5 Y3 1 .P00 Upgrade: WebSocket Sec-WebSocket-Key1: 41 46546xW%0l 1 5 Origin: http:/网址 8-byte security key 服务端对客户端的响应:HTTP/1.1 101 WebSocket Protocol Handshake Upgrade: WebSocket Connection: Upgrade WebSocket-Origin: http:/网址 WebSocket-Location: ws:/网址 16-by
39、te hash response协议中的Sec-WebSocket-Key1,Sec-WebSocket-Key2 ,8-byte security key 字段就是服务器端需解析的关键信息,据此来产生应答信息给浏览器端。draft-hixie-thewebsocketprotocol-76草案是这样定义应答信息的:1. 读取Sec-WebSocket-Key1头信息对应的值,将读取到的数值以字符串的格式存储起来, 并计算出所有空格的个数;2. 将第1步得到的数字字符串转换成一个整型值,然后除以第1步里统计出来的空格个数,然后将得到的浮点数转换成整数型;3. 将第2步里得出的整型值转换为网络字
40、节序;4. 对Sec-WebSocket-Key2头信息采取同Sec-WebSocket-Key1的操作,得出第二个网络字节型数组;5. 将8-byte security key和在第3,第 4 步里生成的网络字节数组连接成一个16B的数组;6. 对第5步生成的字节数组按MD5算法生成一个哈希值作为安全密钥返回给客户端,之后WebSocket连接就建立起来了。2.4.4 WebSocket 接口WebSocket接口是HTML5针对开发Web应用程序向程序员提供的编程接口,WebSocket的JavaScript 接口定义如下: Constructor(in DOMString url, in
41、 optional DOMString protocol) interface WebSocket readonly attribute DOMString URL; / 就绪状态 const unsigned short Connecting = 0; const unsigned short Open = 1; const unsigned short Close = 2; readonly attribute unsigned short readyState; readonly attribute unsigned long bufferedAmount; / 网络 attribute
42、 Function onopen; attribute Function onmessage; attribute Function onclose; boolean Send(in DOMString data); void Close(); ; WebSocket implements EventTarget;接口中URL用于表示WebSocket服务器的网络地址,协议使用“ws”表示,也有用“wss”表示的安全的WebSocket 连接。接口规定了使用send方法发送数据,使用close 方法关闭连接。除了这两个方法外,接口中还定义了四个重要的事件:Onopen,Onmessage,On
43、error和Onclose方法。图2-3列出的就是接口定义了的方法:图2-3 WebSocket事件WebSocket建立连接的代码如下:var wsServer = 'ws:/localhost:8080/Demo' var websocket = new WebSocket(wsServer); websocket.onopen = function (event) onOpen(event) ; websocket.onclose = function (event) onClose(event) ; websocket.onmessage = function (eve
44、nt) onMessage(event) ; websocket.onerror = function (event) onError(event) ; function onOpen(event) console.log("Connected to WebSocket server successfully!"); function onClose(event) console.log("Connection is closed!"); function onMessage(event) console.log('The data from s
45、erver is: ' + evt.data); function onError(event) console.log('Error: ' + event.data); 在WebSocket连接建立的过程是将HTTP协议升级到WebSocket协议,连接建立完成之后,无论是客户端还是服务器端都可以直接调用WebSocket接口提供的方法在全双工的模式下发送和侦听数据16。2.4.5 浏览器和服务器支持情况表2-1列出的是目前支持HTML5 WebSocket的浏览器:浏览器支持要求Internet Explorerversion 10+Chromeversion 4+
46、Firefoxversion 4+Operaversion 10+Safariversion 5+表2-1浏览器对WebSocket的支持在服务器端实现了WebSocket协议的项目有:jetty 7.0.1、pyWebSocket(apache http server)、Nginx 1.3.13、jWebSocket(java WebSocket)、resin、Apache tomcat 7.0.27。2.4.6 WebSocket的局限性WebSocket的优点主要表现在基于全双工通信的低网络吞吐量和零数据延时方面,但是WebSocket的缺点同样也很明显。首先它还是一项正在进行的中草案,
47、尤其是没有标准的API,所以这也就决定了它至少是在目前还不能在所有的Web服务器上运行WebSocket程序,开发的WebSocket服务器可能会被锁定在一个平台上。其次由于WebSocket尚未形成标准,所以各浏览器对它的支持情况也是不尽相同的。2.5 本章小结本章首先简要介绍了物联网技术的概念,并对其主要特征和关键技术做了归纳。接着介绍了Nodejs 服务器的新特性和Nodejs开发实时 Web 应用服务器的优势,强调了该技术在网络密集型方面的应用,和其在实时性要求高的web开发中的重要性。最后是对HTML5的WebSocket规范和WebSocket接口的介绍,重点将其和传统的实时技术作
48、了对比分析得出其在性能上的优势,在末尾还对WebSocket的浏览器和服务器端运行的条件进行了说明。第三章 系统分析与设计3.1心率检测系统分析随着物联网技术的发展与广泛的应用,基于物联网架构的智能技术产品越来越多,如利用物联网中的感知技术,将传感器设备用在心率监控中,通过感知病人的心跳次数自动发送心率数据给远程的医护人员,避免了专门派遣医护人员进行检测的情况。利用物联网实现医院病人心率信息的统一管理,通过网络将心率信息汇总,以实时方式监控病人的心率情况,从而有效防止病人突发情况的发生。由于病情监控是一件刻不容缓的事,所以医院对心率监控系统数据传输的实时性和操作的简易性的要求就会非常高。本文论
49、述的心率监控系统是在物联网通信技术的基础上,将传感器网络、以及 HTML5的WebSocket技术相结合,在B/S模式下设计了一个具有实时性高、通用性好、操作简便的实时远程在线心率监控系统。本系统不仅适用于在医院内使用,也可扩展到其他类似需要实现监控的领域内使用。用户通过浏览器监测和管理病人的心率信息,这样即使医院没有陪护人员,用户只要打开浏览器即可随时查看病人的心率数据。特别是在深夜当工作人员都下班回家后,没有护理人员监护病人病情时,应用本系统便可完成实时检测,减少了不必要的人力投入。通过浏览器管理病人,监护人员就可以坐在办公室在浏览器上控制病人,这样不仅可以在第一时间内发现异常情况,而且可
50、以避免人工监护时疏忽情况的发生,同时能够有效地节约人力物力,大大提升医院的运作效率。另外,通过实时远程在线监测可以方便医生了解和掌握病人心率的状态变化,用于对患者健康的分析和判断,另外系统可在第一时间发现异常情况同时发出警报,使医生迅速赶到对应病房实施抢救。3.2 系统需求分析为了帮助医院管理人员对病人的心率信息进行管理,根据医院心率检测过程的应用研究分析,心率检测系统要实现以下五个目标:(一) 用户在系统前台可以查看患者的实时心率数据;(二) 患者的心率数据在客户端以动态图形的方式展示;(三) 当患者心率异常时,系统能够产生报警信号;(四) 系统实时响应速度要快,避免发生延迟;(五) 系统需
51、要满足可及时维护和更新的需求,而且要具有稳定性高、扩展性强的优点。经过对上述五条需求进行分析,心率检测系统主要完成的功能是:实时数据显示和报警功能。用户进入系统主页后就可以直接查看检测到的心率数据,当系统发现心率数据异常时系统会自动启动报警。3.3 系统架构心率检测系统由三部分组成,分别是:数据采集部分、服务器端和终端。系统结构如图3-1所示:图3-1 系统架构图系统运行时,首先将后台心率检测传感器采集到的心率数据通过网络传输到服务器上。Web服务器接收到心率信息后,随即利用 HTML5 中的 WebSocket 技术,将数据通过服务器和浏览器之间的全双工信道实时地推送到客户端浏览器,医生通过
52、浏览器就可以实时查看到病人的心率数据。3.4 服务器推送技术可行性分析HTML5 WebSocket的出现为C/S应用迁移到B/S模式下提供了技术基础,由于B/S模式具有客户端精简、易于升级维护和通用性好的优点,所以B/S取代C/S逐渐成为了一种趋势。B/S应用的关键问题是Web通信的问题,在WebSocket出现之前,解决客户端和服务器端数据通信的方法主要有轮询、长轮询和流等技术,这些技术虽然都能够完成客户端和服务器之间的数据交互,但是在数据的实时性方面都不能满足要求。首先轮询、长轮询和流都是基于TCP的单链接,轮询是靠客户端不断的以固定时间间隔询问服务器是否有新数据到来,由于新数据的产生具
53、有随机性,所以轮询技术的每一次请求可能都是无用的,而且毫无目的的请求也会造成大量的资源浪费,同时会造成服务器负载过重的现象。长轮询虽然将连接保持一段时间不关闭,减少了请求次数,但是如果服务器端的数据更新很快时,长轮询就会退化为轮询,固长轮询也不能解决数据的实时推送。流技术在实现时在页面中插入了一个隐藏的iframe, 通过iframe在浏览器和服务器之间创建一个永久性的连接,服务器端的数据虽然可以及时的发送出去,但是由于流在穿越防火墙和代理服务器时会被缓冲并造成一定的延时,所以流也不是解决实时性应用的可行技术17。由上述分析可知要保证Web数据传输的实时性,如果能在客户端和服务器之间建立一条全
54、双工的通道就可解决轮询、长轮询和流技术不能解决的实时性问题。WebSocket 技术刚好提供了一条满足实时数据传输的全双工通信信道,此外WebSocket在网络吞吐量和数据延时方面也具有强大的优势,首先HTTP 协议的请求和响应报头信息中都包含了560个字节,而 WebSocket 协议的每个消息都是用一个帧表示的,头信息只有 2 个字节。有实验得出,当用户数量激增时WebSocket 产生的网络吞吐量和轮询相比是微乎其微的。其次数据从服务器到浏览器的传输大约需要用50毫秒,第二章已说明在使用轮询技术时,一次响应完成后,客户端需要再次向服务器发送新的请求,这个请求同样也需要50毫秒,但是在请求
55、发送的期间服务器无法发送任何消息给浏览器,这样一来服务器就必须为新数据分配临时空间,长期累积下来,服务器的内存消耗就会非常严重,数据的延时也会不断的增加;若采用HTML5的WebSocket 技术,连接就会从HTTP升级到 WebSocket,虽然数据从服务器传输到浏览器仍然还需要50毫秒,但是WebSocket提供的全双工信道可保证之后浏览器不用再向服务器发送任何请求,而且双方相互发送数据时互不妨碍对方,服务器也就不会有内存消耗,数据的延时更不会增加18。经上述对比分析可知,为了能够实现系统对数据传输的实时性要求,HTML5的WebSocket是实现本系统服务器推送技术的最佳选择。3.5 服务器端设计本系统的Web服务器程序是在 Windows平台下利用 Nodejs 编程实现的。使用Nodejs 编写服务器的优点在于它基于谷歌浏览器的V8 引擎、具有事件驱动的I/O非阻塞特性、功能模块化,并且 Nodejs 服务器对WebSocket 协议提供了支持。在系统中服务器端需要完成的功能包括: 服务器端首先启动一个套接字,接受来自客户端的连接请求,同时每隔一秒钟将接收到的心率数据通过WebSocket连接推送给客户端。在Web服务器的设计中,引用了 Nodejs 的socket.io模块, socket.io是实现服务器与浏览器基于WebSocket协议进行全双工通信的关
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人诊所合同标准文本
- 知识管理系统规划计划
- 住宅加装电梯合同标准文本
- 儿童合同标准文本标准文本玩具
- 2025年住宅楼购房合同全文(合同范本)
- 2025房地产项目借款合同协议
- 宣传策划方案(6篇)
- 监理工程师考试首要知识点试题及答案
- 2025年中外合作开发合同
- 短视频委托代运营服务合同-模板
- 无人机应用技术概论-第-1-章-绪论
- 《电工电子技术基础》高职全套教学课件
- 2024北京电子科技职业学院招聘笔试备考题库及答案解析
- 第十五课 中望3D-工程图系列2讲解
- 2024-2029年中国3D裸眼技术行业市场发展分析及发展趋势与投资前景研究报告
- DZ∕T 0220-2006 泥石流灾害防治工程勘查规范(正式版)
- 干部人事档案转递单(带存根回执)
- 术中用药用血安全管理课件
- 2019年10月自考05760营养学一试题及答案含解析
- 2023-2024学年教科版五年级科学下册第二单元《船的研究》检测卷(含答案解析)
- 福建省厦门市2022-2023学年六年级下学期数学期中试卷(含答案)
评论
0/150
提交评论