基于WebSocket的物联网实时通信技术应用_第1页
基于WebSocket的物联网实时通信技术应用_第2页
基于WebSocket的物联网实时通信技术应用_第3页
基于WebSocket的物联网实时通信技术应用_第4页
基于WebSocket的物联网实时通信技术应用_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

分类号 单位代码 密 级 学 号 学生毕业设计 论文 题 目基于WebSocket的物联网实时通信 技术应用 作 者 XXX 院 系 信息工程学院 专 业计算机科学与技术 指导教师 XXX 答辩日期 2014 年 5 月 17 日 XXXXXX 毕业设计 论文 诚信责任书毕业设计 论文 诚信责任书 本人郑重声明 所呈交的毕业设计 论文 是本人在导师的指导本人郑重声明 所呈交的毕业设计 论文 是本人在导师的指导 下独立进行研究所取得的成果 毕业设计 论文 中凡引用他人已经发下独立进行研究所取得的成果 毕业设计 论文 中凡引用他人已经发 表或未发表的成果 数据 观点等 均已明确注明出处 尽我所知 除表或未发表的成果 数据 观点等 均已明确注明出处 尽我所知 除 文中已经注明引用的内容外 本论文不包含任何其他个人或集体已经公文中已经注明引用的内容外 本论文不包含任何其他个人或集体已经公 开发表或开发表或撰撰写写过过的的研研究究成成果果 对本文的研究做出重要贡献的个人和集 对本文的研究做出重要贡献的个人和集 体 均已在文中以明确方式标明 体 均已在文中以明确方式标明 本人毕业设计 论文 与资料若有不实 愿意承担一切相关的法律本人毕业设计 论文 与资料若有不实 愿意承担一切相关的法律 责任 责任 论论文文作作者者签签名名 年年 月月 日日 摘 要 I 摘摘 要要 物联网技术是当代信息技术的重要组成之一 与名同义 物联网就是连接物 品的网络 物联网通过智能感知 识别技术与普适计算 广泛应用于网络的融合 中 形成人与物 物与物相联 实现信息化 远程管理控制和智能的网络 1 物 联网用途广泛 遍及医院护理 照明管控 智能交通等多个领域 本文将物联网技术和 WebSocket 技术相结合 设计并实现了一个小型的远程 心率检测及报警系统的上位机 以求减少医院在人力物力方面的投入 方便医生 在远程通过客户端浏览器实时查看病人的心率 为了扩大使用范围和便于日后的 升级维护工作 系统结构采用 B S 模式 在后台利用传感器采集患者的心率信息 并将其发送到服务器端 服务器在接收心率信息的同时利用 WebSocket 技术实时 推送心率信息到客户端浏览器 供医生查看和分析 最后的测试结果显示本系统 操作简便 具有良好的可扩展性 在效率方面也符合心率检测在实时性方面的要 求 关键字 物联网 传感器 WebSocket ABSTRACT II ABSTRACT The technology of the Internet of things is one of the important components of modern information technology and the name of Internet of things 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 intelligent 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 order 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 heart 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 simple 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 目 录 III 目目 录录 摘 要 I ABSTRACT II 第一章 绪 论 1 1 1 研究背景及意义 1 1 2 国内外现状 1 1 2 1 国外物联网现状 1 1 2 2 国内物联网现状 3 1 3 论文组织结构 4 第二章 相关技术介绍 5 2 1 物联网技术简介 5 2 2 Nodejs 技术 5 2 3 jQuery Flot 6 2 4 HTML5 WebSocket 7 2 4 1 WebSocket 简述 7 2 4 2 WebSocket 的优势 7 2 4 3 WebSocket 握手协议 10 2 4 4 WebSocket 接口 11 2 4 5 浏览器和服务器支持情况 13 2 4 6 WebSocket 的局限性 14 2 5 本章小结 14 第三章 系统分析与设计 15 3 1 心率检测系统分析 15 3 2 系统需求分析 15 3 3 系统架构 16 3 4 服务器推送技术可行性分析 16 3 5 服务器端设计 17 3 6 客户端设计 20 3 7 本章小结 26 第四章 系统性能测试及结果 27 4 1 服务器端测试 27 4 2 客户端测试 27 4 3 本章小结 30 第五章 总结与展望 31 目 录 IV 5 1 论文工作总结 31 5 2 展望 31 参考文献 32 致 谢 33 榆林学院本科毕业设计 论文 1 第一章第一章 绪绪 论论 1 11 1 研究背景及意义研究背景及意义 物联网技术的出现对社会的发展产生了深刻的影响 它在现有网络的基础上 结合当代传感技术将一切智能的物体互相连接起来用以方便人们的衣食住行 2 物联网的强大之处在于它可以把你所能想象到的任何物品都连接到网络上 同时 可以对它们进行管理 控制或者监控 目前 物联网技术已广泛用在工业控制 环境保护 医疗护理 照明管控 智能交通 智能家居 智能消防 水系监测 食品安全和国防安全等多个领域 物联网的应用前景非常广阔 它给人们带来的方便也是想象不尽的 本文尝 试从物联网实时通信着手 构建一个供医院对病人心率进行实时检测的心率检测 系统 由于通过分析心率信号可以判断一个人的健康状况 所以对这类生理信息 进行日常监护与检测对患有心血管疾病的患者和老年人的预防诊治有及其重要的 意义 尤其是对这些生理信息进行持久的跟踪记录 就可以依据这些记录的变化 和走势大致了解患者的健康趋势 1 21 2 国内外现状国内外现状 物联网的概念来自于麻省理工学院的 Auto ID 研究中心 它是由 Kevin Ash ton 教授于 1999 年最早提出 起先 它的含义是指所有物品通过射频识别传感装 置连接到 Internet 实现智能化识别和控制 2005 年 11 月 17 日在在突尼斯举 行的信息社会世界峰会上 国际电信联盟 ITU 对物联网的概念进行了扩展 提出了何时刻 任何地点 任意物体之间的互联 无所不在的网络和无所不在的 计算的新概念 从此物联网的覆盖范围也得到了大大的拓展 它不再是单纯的基 于射频识别的物联网 而是指包括射频识别 激光扫描 GPRS 气体感应等多种 新技术的物联网 1 2 11 2 1 国外物联网现状国外物联网现状 目前 国外对物联网的研究主要集中在欧洲各国 美国 日本和韩国等国家 中 这些国家都对物联网的研究与应用给予高度重视 在政策上提供了大力支持 视物联网为提升综合国力和促进经济发展的重要动力 同时相继启动了以物联网 为基础的国家性区域战略规划 现阶段各国物联网的发展现状如下 1 1 欧盟欧盟 基于 WebSocket 的物联网实时通信技术应用 2 针对物联网技术的研究和发展 欧盟专家们提出了基于物联网技术的 行动 计划 该计划详细描述了物联网技术的应用前景 并且强调了欧盟各成员国对 物联网管理的决心 以努力确保欧盟在物联网研究进展中的话语权 为了实现欧 盟在物联网智能基础设施开发方面领先世界的目标 欧盟启动了超过 90 项的物 联网项目研究 其中单独对 ICT 的研发投资就高达 4 亿欧元 此外欧盟还于 2011 到 2013 年期间每年新增 2 亿欧元进一步加强研究的进度 同时专项拨款 3 亿欧 元用于帮助物联网公司的项目建设 3 在管理上欧盟制定了统一的物联网标准 同时还提供了一个有效的分布式管 理架构 用于方便其各子管理机构公开 公平 尽职地履行管理职责 欧盟的物 联网研究领域囊括了汽车 能源 航空 航天等 18 个应用领域 以及架构 识 别和数据处理等 12 个关键技术领域 目前欧盟已经实施的物联网应用有药品公 司使用专用序列码标识药品 电能公司向用户提供智能电子计费系统 各汽车公 司开始生产智能汽车等 与此同时 许多以物联网应用为目标的小公司的新创意 新产品也在不断的丰富着欧盟的物联网市场 2 2 美国美国 2009 年奥巴马就 IBM 公司首席执行官提出的 智慧地球 概念 将物联网列 为振兴经济的两大重点之一 同时开启了大量的物联网技术研究 奥巴马政府在 鼓励物联网技术发展的政策方面主要体现在能源的推广 宽带和医学三个领域 2009 年 经济复苏和再投资法 的提出意在从医疗 科技 教育 能源等领域着 手 通过增加政府的投资配合政策的便利促进物联网技术的研究和应用 到 2013 年 美国已经完成了物联网平台的开发 开发者通过该平台可以利用 无线网络进行物联网开发 随后思科公司在物联网平台的基础上 实现了无线家 庭安全控制面板 思科因此获得了 2012 年度物联网行业突出贡献奖的提名 另 据思科报告称 物联网将会是下一个万亿美元级别的新兴信息技术产业 而美国 将会占据未来物联网市场份额的三分之一 4 3 3 日本日本 2004 年日本提出了基于物联网的国家信息化战略 U Japan 策略的目的是为 了促进新一代信息技术革命的诞生 使日本成为一个无处不在的便利社会 日本 政府从汽车产业 建筑行业 能源行业和远程监控等方面着手 在这些领域广泛 推广物联网技术及其产品的应用 在日本社会 物联网已经渗透到了人们生活的 基本必需品中 日本最新推出的智能家电可供用户利用手机点餐 通过手机查看 和管理任何连接到物理网的家用电器的运行状态 比如 通过远程网络调节空调 的温度 控制电饭煲做饭 控制热水器烧水 不管人在什么地方 只要通过物联 网就可方便的监控和管理自己的住宅 据 2012 年的数据显示 日本已有约 317 万多的物联网用户 这些物联网用户主要遍及在电子商务 监控 交通 物流等 榆林学院本科毕业设计 论文 3 9 个领域 5 从日本物联网技术发展的趋势可以预见 在未来通信行业将会是日 本物联网发展的重点 并且这一行业的发展会冲击日本已达饱和状态的手机放号 市场 给日本的经济发展带来新的动力 4 4 韩国韩国 和日本一样 韩国同样重视物联网在本国信息产业中的发展和应用 早在 97 年韩国就曾提出在 2011 年之前完成韩国物理网普及的短程规划 期间韩国政府 就物理网的研究制定了 8 项专项计划 2010 年韩国效仿美国将物联网列为促进韩 国社会经济增长的重点 积极推进韩国物联网社会的建设和发展 到目前韩国基 本上完成了基于 IPV6 的物联网基础设施的建设 这一建设的完成极大的提高了 韩国通信网络的质量 为韩国物联网的商业化作了基础性铺垫 一流的物联网基 础设施不仅巩固了韩国的国防安全 而且对韩国的教育行业 医疗行业 食品行 业 航空工业都产生了巨大的影响 物联网技术的应用已深刻的融入了韩国民众 的日常生活中 在韩国包括农业 工业 娱乐业随处可见智能的物联网技术产品 有数据统计韩国在 2013 年的物联网产业规模就高达 50 万亿韩元 5 1 2 21 2 2 国内物联网现状国内物联网现状 我国的物联网研究起步比较晚 在 2009 年温家宝总理的 感知中国 讲话 之后 我国政府才将物联网列为国家新兴战略产业 并在江苏省无锡市建立了第 一个物联网研究中心 虽然如此 但是我国的物联网技术研发水平仍居于世界前 列 目前我国还是物联网标准的主导国之一 我国在物联网领域拥有的专利数量 最多 这些完全得益于我国拥有特殊的发展物联网的现实背景 首先 我国的无 线通信网络和覆盖率都很高 具有发展物联网的基础 其次 我们国家是世界第 二大经济体 拥有雄厚的经济实力发展物联网 在国家宏观的政策鼓励下 各省份的物联网发展势头迅猛 取得的成就也 数不胜数 例如 西安的优势微电子公司于 2009 年成功了研制出 唐芯 1 号 物联网芯片 至此打开了我国攻克物联网技术的大门 2010 年江南大学组建了全 国第一个物联网工程学院 用于培育物联网技术专业人才 2011 年长安大学建立 了全国第一个国家级的科技园 重点发展 RFID 技术 2012 年重庆邮电大学研发 的 渝芯 1 号 芯片将我国物联网技术带入了物联网领域的领先水平 现阶段我国的物联网发展问题主要是 一 缺乏核心技术 读写器和芯片 过度依赖其他国家 二 RFID 技术标准缺位 三 市场因素限制 RFID 标签量化 应用 四 国内企业没有竞争优势 管理理念保守 针对我国的物联网现状 我 国的物联网发展目标是把我国建设成为一个物联网技术创新性的国家 1 自 主创新能力明显增强 2 具有国际竞争力的产业体系 3 物联网水平显著 基于 WebSocket 的物联网实时通信技术应用 4 提升 6 物联网作为新兴推动世界经济高速发展的动力因子 在 2011 我国的物 联网产业规模已达到 2 5 千亿人民币 预测数据显示这一数据在 2015 年会高达 5 千亿元 伴随着国家政策的主导和物联网技术的不断革新 物联网将会对提升 我国国民经济生产力产生越来越大的影响力 它会更加彻底的改变我们的生活方 式 1 31 3 论文组织结构论文组织结构 本文首先研究和分析了国内外物联网的发展状况 接着对 HTML5 中的 WebSocket 协议进行了深入研究 通过对 HTML5 WebSocket 协议和传统服务器推 送技术的对比分析 得出了 HTML5 的 WebSocket 在实时领域的吞吐量优势和时延 优势 最后将 HTML5 WebSocket 和 Nodejs 技术相结合应用于项目中进行验证 结果指明了 HTML5 WebSocket 在实时领域的优越性与可行性 本文一共分为五章 各个章节的具体内容安排如下 第一章 绪论 在绪论中对心率检测系统的研究背景和意义做了简要的说 明 引出了本论文的研究目的 然后对物联网的国内外现状进行了全面阐述 同 时对物联网基础上的心率检测系统做出了概要介绍 最后对论文的框架结构进行 了细致说明 第二章 相关技术介绍 首先大致介绍了物联网的概念 并且概况了物联 网技术的主要特征和关键技术 其次 阐述了 Nodejs 作为高并发实时 Web 服务 器的强大性能及其优势所在 接着介绍了客户端图形显示的 jQuery Flot 库 最后详细介绍了 WebSocket 的概念 分析了 WebSocket 的特性和功能 同时对 WebSocket 的使用和浏览器 服务器支持情况进行了简单介绍 第三章 系统分析与设计 本章首先阐明了心率检测系统的现实意义 接 着对心率检测系统的功能模块和系统架构进行了说明 在结尾利用 WebSocket 和 Nodejs 技术分别完成了系统的客户端和服务器端的实现 第四章 系统性能测试及结果 本章根据系统的功能描述有针对性的分别 对客户端和服务器端进行了系统性测试 最后结果验证了系统的可行性 第五章 总结与展望 本章是对全文的总结和展望 对论文进行总结是为 了梳理知识脉络 查漏补缺方便以后继续研究 展望是提出个人对系统的预想 以方便后续研究的开展 榆林学院本科毕业设计 论文 5 第二章第二章 相关技术介绍相关技术介绍 2 12 1 物联网技术简介物联网技术简介 物联网是指在现有互联网的基础上 利用感知 识别 GPRS 激光扫描 气 体感应等技术把物体连接到互联网上 实现物物之间信息交互的网络 利用物联 网可实现随时随地的远程定位 监控和管理 物联网在本质上是互联网的延伸和 拓展 它的核心是创新 任何涉及到信息技术的应用都可以划入物联网的范围 因此也有人说物联网是业务加应用的网络 物联网由五个层构成 分别是感知层 接入层 网络层 支撑层 和应用层 感知层 主要完成信息的收集与处理 接入层 主要负责各类设备的网络接入 网络层 网络层为现有的互联网 主要完成信息的远距离传输 支撑层 支撑层又称中间件或者业务层 主要完成信息的表达与处理 最终 达到语义互操作和信息共享的目的 应用层 应用层主要完成服务发现和服务呈现的工作 物联网主要涉及三项关键技术 1 射频识别技术 RFID 射频识别是一种基于无线电的对目标物识别并进 行读写数据的通信技术 射频识别技术处于感知层 射频标签包含了利用 磁信号存储的数据信息 主要被用于附着在物联网的终端物体上 通过射 频标签就可以完成对标识物的自动识别和追踪 2 传感器技术 传感器好比是人的感官器官 主要用于感知被测物体相关信 息的一种物理检测装置 它利用材料自身的物理属性 将检测物状态的变 化以电信号的形式输出到接收端 传感器也是目前物联网应用中获取外界 信息的主要途径和手段 3 嵌入式技术 嵌入式技术是融合了计算机软硬件技术和集成电路技术的复 杂技术 物联网中的一切智能终端产品无一不例外的都应用了切入式技术 切入式的表现形式主要是将具有特定功能的芯片嵌入到被管控的物体内部 以实现程序指令控制的目的 7 2 22 2 NodejsNodejs 技术技术 Nodejs 是基于谷歌 Chrome 运行时构建的网络服务应用平台 它借助了 Google 的 V8 引擎性能好 速度快的优势 广泛的被用于搭建快速的 易于扩展 基于 WebSocket 的物联网实时通信技术应用 6 的网络应用 Nodejs 的特点是基于事件驱动的单线程模式 采用异步非阻塞的 I 0 流程运行 虽然 Nodejs 是单线程模型 但是它仍可以对多任务进行并行处理 事实上它是通过事件的轮询实现并行任务的操作的 也正因为如此使得利用 Nodejs 编写出的服务器应用程序即安全可靠而且便于扩展 8 Nodejs 的强大之处在于它支持 Javascript 运行在服务器端 因为浏览器所 能支持的语言极其有限 所以要想在浏览器端和服务器端之间共享代码就只能使 用 JavaScript 来完成 刚好 Nodejs 就支持这一点 此外 Nodejs 还处在完善阶 段 自 2009 年推出的轻量级 API 库到现在 在广大 Nodejs 爱好者和相关专家的 不懈努力下 目前 Nodejs 已发布了大量的扩展库 这些扩展库以模块的形式划 分不同的功能 其中有连接数据库的模块 相关软件驱动的模块 加密模块 GUI 模块和网络编程模块等 这些功能模块对 Nodejs 的开发提供了强有力的支持 9 目前在工程上已经证明 Nodejs 和传统的服务器脚本相比 Nodejs 的非阻塞 I O 能够极大的提高程序并发的能力 其次在执行效率和成本上 Nodejs 也大大 超过了 JAVA RUBY 和 C 语言开发的非阻塞服务 另外在代码量上 Nodejs 的表现 也是最优和最简单的 10 2 32 3 jQueryjQuery FlotFlot Flot 是一个基于 jQuery 的开源 JavaScript 库 是一个纯粹的 jQuery JavaScript 绘图库 主要被用来在网页上绘制图表 Flot 具有体积小 运行速 度快 支持折线图 条形图 扇形图 堆栈图和实时更新图等多种图形显示的特 点 因此深受广大网页开发人员的青睐 此外 Flot 是完全免费的 其自身尚在 不断的扩充和完善当中 但这并不影响它的使用性能 因为对于一般的图形绘制 使用 Flot 完全可以实现用户的所有需求 Flot 提供的接口非常简单而且功能丰富 在使用 Flot 绘制图形时只需按照 五个步骤 1 引入档案 2 设置定位点 3 准备数据 4 定义轴属性 5 调用 plot 使用不到 20 行的代码就可完成一张图表的绘制 所以这对没有绘图经 验的开发人员来说是一个很不错的的选择 只要有 JavaScript 基础任何人都可 以轻松掌握 Flot 在执行效能方面 Flot 可在一张图形上完成 1000 个数据点以上的图形显示 在实时性方面 Flot 可以 100 毫秒的速度完成一次图形的重绘 在交互性方面 Flot 支持放大缩小以及鼠标追踪的功能 目前支持 Flot 的浏览器有 IE Firefox Chrome Safar 及 Opera 等 由于 Flot 使用了 HTML5 的 Canvas 榆林学院本科毕业设计 论文 7 来绘制图表 所以对于 IE8 或是更早以前的版本 可能需要用 excanvas 模拟 Canvas 功能让 Flot 也可以在 IE8 及早前的版本中使用 2 42 4 HTML5HTML5 WebSocketWebSocket 在 HTML5 之前的 web 通信都是单向的 服务器在推送数据时不能接收浏览器 的数据 浏览器在接收数据时不能发送信息给服务器 对于服务器和浏览器需要 双向同时通信的 web 应用在 HTML4 时代是无法实现的 相关应用只能以 C S 的模 型实现 其主要原因在于实现浏览器通信的 http 协议不能完成双工通信 为此 WebSocket 的提出就是为了解决此类问题 WebSocket 是在 HTML5 中引入的新协 议之一 利用 WebSocket 可实现浏览器和服务器之间的全双工通信 WebSocket 出现的另外一个目的便是要代替以往的轮询技术和 Comet 技术 希望通过 WebSocket 协议将基于 C S 的应用转移到浏览器上 2 4 12 4 1 WebSocketWebSocket 简述简述 WebSocket 是由 WebSocket 协议和 WebSocket 接口构成的 WebSocket 协议主 要负责完成客户端和服务器端握手连接的建立 它允许使用任何服务器端的编程 语言实现 当然只有浏览器和服务器都遵循了同样的协议 才能建立起 TCP 连接 才可以有后续的通信 11 WebSocket 接口主要是供程序员调用以完成特殊的功能 前端开发人员可以通过该接口提供的一些操作 访问实现了 WebSocket 的服务器 从而实现与服务器之间的实时通信 2 4 22 4 2 WebSocketWebSocket 的优势的优势 对于实时类的 Web 应用 HTML5 提出了 WebSocket 的实现方式 和过去的轮 询技术等相比 HTML5 的 WebSocket 表现出了非常强大而且无法超越的优势 其中最重要的是降低了不必要的的网路开销 因为单独一次 HTTP 请求就会附 带超过大约 800 字节的 HTTP 头信息 但是如果使用 WebSocket 协议代替 HTTP 那么每一个消息就都是以一个 WebSocket 帧的形式存在于网络上 总共也就只会 占约 2B 左右的开销 随着网络访问用户量的增长 WebSocket 网络开销的优势会 越来越明显 12 如图 2 1 所示 网络开销对比 网络开销对比 基于 WebSocket 的物联网实时通信技术应用 8 图 2 1 Ajax 轮询与 WebSocket 网络吞吐量对比 场景一场景一 AjaxAjax 轮询 轮询 用例用例 A A 1000 客户 每秒轮询一次 网络流量为 871 1000 B bit s 6 6Mbit s 用例用例 B B 10000 客户 每秒轮询一次 网络流量为 871 10000 8710 000B 69680 000bit s 66Mbit s 用例用例 C C 客户 每秒轮询一次 网络流量为 871 B bit s 665Mbit s 场景二场景二 WebSocketWebSocket 用例用例 A A 1000 客户 每秒接收一个消息 网络流量为 2 1000 2000B 16000bit s 0 015Mbit s 用例用例 B B 10000 客户 每秒接收一个消息 网络流量为 2 10000 20 000B 160 000bit s 0 153Mbit s 用例用例 C C 客户 每秒接收一个消息 网络流量为 2 B bit s 1 526Mbit s 榆林学院本科毕业设计 论文 9 如图 2 2 所示 在降低网络流量方面 HTML5 的 WebSocket 的性能表现的非常 出色 由于 WebSocket 只在同服务器建立握手连接的时候才发送一次请求 以后 的所有消息传递都不需要再次发送请求 整个过程中服务器也就只处理一次请求 与处理轮询技术的大批量请求相比而言 WebSocket 服务器的压力有了大幅度的 降低 13 时延对比 时延对比 图 2 2 轮询和 WebSocket 时延对比 在图 2 2 中的上部分内容显示的是半双工轮询技术的运行过程 对图仔细分 析就可得到如果消息的一次传输占用 50ms 的话 并且服务器端数据更新的比较 频繁时 采用轮询技术的数据推送方式会在这 50ms 内产生多个延迟 另外如果 数据本身占用内存比较大时 服务器的内存就会被迅速的耗尽 严重时会直接导 致服务器奔溃 图 2 2 的下部分显示的是 WebSocket 技术的工作过程 由于 WebSocket 提供 了全双工的工作模式 服务器和浏览器之间的数据交互互不影响 消息的发送和 基于 WebSocket 的物联网实时通信技术应用 10 所消耗时间也没有任何关系 因此不管是任何一方的数据发送都不会产生延迟的 现象 当然服务也就不必为新接收的数据开辟额外的内存 14 另外 值得一提的是 WebSocket 穿越代理和防火墙的能力 由于 WebSocket 是基于 HTTP CONNECT 代理协议的 所以浏览器和服务器之间的交互在本质上还 是然是一个 HTTP 请求 这个请求是一个经过申请协议升级的 HTTP 请求 服务器 就是根据这个请求与浏览器建立连接的 由于 HTTP 协议是不受防火墙限制的 所以基于 WebSocket 的应用 自然也就具有超强的环境适应能力 最后 WebSocket 开发简单方便 WebSocket 提供的编程接口避免了开发人员 与复杂的协议打交道 所以不了解通信协议的开发者 仍然可以开发出基于 WebSocket 的应用 2 4 32 4 3 WebSocketWebSocket 握手协议握手协议 前面已说明了 WebSocket 协议是一个基于 TCP 的协议 它在 HTTP 的请求报 头中添加了 Upgrade WebSocket 的说明字段 服务器就是根据这条字段产生 应答和客户端建立 WebSocket 连接的 WebSocket 连接是持久的它不像 TCP 连接 有超时的限制 15 WebSocket 连接只有在客户端或服务器端中的任何一方主动发 出关闭连接信息后才会中断 由于 WebSocket 到目前为止还没有以标准的形式推广 它的细节部分还处于 不断完善阶段 所以不同时期可能有不同的 WebSocket 规范 本文介绍的是 draft hixie thewebsocketprotocol 76 版的 WebSocket 协议 该版本的 WebSocket 可在 Open Chrome 和 FireFox 浏览器上执行 客户端请求服务端 客户端请求服务端 GET demo HTTP 1 1 Host Connection Upgrade Sec WebSocket Key2 12998 5 Y3 1 P00 Upgrade WebSocket Sec WebSocket Key1 4 1 46546xW 0l 1 5 Origin http 网址 8 byte security key 服务端对客户端的响应 服务端对客户端的响应 HTTP 1 1 101 WebSocket Protocol Handshake 榆林学院本科毕业设计 论文 11 Upgrade WebSocket Connection Upgrade WebSocket Origin http 网址 WebSocket Location ws 网址 16 byte 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 步里得出的整型值转换为网络字节序 4 对 Sec WebSocket Key2 头信息采取同 Sec WebSocket Key1 的操作 得出 第二个网络字节型数组 5 将 8 byte security key 和在第 3 第 4 步里生成的网络字节数组连接 成一个 16B 的数组 6 对第 5 步生成的字节数组按 MD5 算法生成一个哈希值作为安全密钥返回给 客户端 之后 WebSocket 连接就建立起来了 2 4 42 4 4 WebSocketWebSocket 接口接口 WebSocket 接口是 HTML5 针对开发 Web 应用程序向程序员提供的编程接口 WebSocket 的 JavaScript 接口定义如下 Constructor in DOMString url in 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 基于 WebSocket 的物联网实时通信技术应用 12 readonly attribute unsigned long bufferedAmount 网络 attribute 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 Onerror 和 Onclose 方法 图 2 3 列出的就是接口定义了的 方法 图 2 3 WebSocket 事件 WebSocketWebSocket 建立连接的代码如下 建立连接的代码如下 var wsServer ws localhost 8080 Demo var websocket new WebSocket wsServer websocket onopen function event onOpen event 榆林学院本科毕业设计 论文 13 websocket onclose function event onClose event websocket onmessage function event 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 server is evt data function onError event console log Error event data 在 WebSocket 连接建立的过程是将 HTTP 协议升级到 WebSocket 协议 连接建 立完成之后 无论是客户端还是服务器端都可以直接调用 WebSocket 接口提供的 方法在全双工的模式下发送和侦听数据 16 2 4 52 4 5 浏览器和服务器支持情况浏览器和服务器支持情况 表 2 1 列出的是目前支持 HTML5 WebSocket 的浏览器 浏览器支持要求 Internet Explorerversion 10 Chromeversion 4 Firefoxversion 4 Operaversion 10 Safariversion 5 表 2 1 浏览器对 WebSocket 的支持 基于 WebSocket 的物联网实时通信技术应用 14 在服务器端实现了 WebSocket 协议的项目有 jetty 7 0 1 pyWebSocket apache http server Nginx 1 3 13 jWebSocket java WebSocket resin Apache tomcat 7 0 27 2 4 62 4 6 WebSocketWebSocket 的局限性的局限性 WebSocket 的优点主要表现在基于全双工通信的低网络吞吐量和零数据延时 方面 但是 WebSocket 的缺点同样也很明显 首先它还是一项正在进行的中草案 尤其是没有标准的 API 所以这也就决定了它至少是在目前还不能在所有的 Web 服务器上运行 WebSocket 程序 开发的 WebSocket 服务器可能会被锁定在一个平 台上 其次由于 WebSocket 尚未形成标准 所以各浏览器对它的支持情况也是不 尽相同的 2 52 5 本章小结本章小结 本章首先简要介绍了物联网技术的概念 并对其主要特征和关键技术做了归 纳 接着介绍了 Nodejs 服务器的新特性和 Nodejs 开发实时 Web 应用服务器的 优势 强调了该技术在网络密集型方面的应用 和其在实时性要求高的 web 开发 中的重要性 最后是对 HTML5 的 WebSocket 规范和 WebSocket 接口的介绍 重点 将其和传统的实时技术作了对比分析得出其在性能上的优势 在末尾还对 WebSocket 的浏览器和服务器端运行的条件进行了说明 榆林学院本科毕业设计 论文 15 第三章第三章 系统分析与设计系统分析与设计 3 13 1 心率检测系统心率检测系统分析分析 随着物联网技术的发展与广泛的应用 基于物联网架构的智能技术产品越来 越多 如利用物联网中的感知技术 将传感器设备用在心率监控中 通过感知病 人的心跳次数自动发送心率数据给远程的医护人员 避免了专门派遣医护人员进 行检测的情况 利用物联网实现医院病人心率信息的统一管理 通过网络将心率 信息汇总 以实时方式监控病人的心率情况 从而有效防止病人突发情况的发生 由于病情监控是一件刻不容缓的事 所以医院对心率监控系统数据传输的实时性 和操作的简易性的要求就会非常高 本文论述的心率监控系统是在物联网通信技术的基础上 将传感器网络 以 及 HTML5 的 WebSocket 技术相结合 在 B S 模式下设计了一个具有实时性高 通 用性好 操作简便的实时远程在线心率监控系统 本系统不仅适用于在医院内使 用 也可扩展到其他类似需要实现监控的领域内使用 用户通过浏览器监测和管 理病人的心率信息 这样即使医院没有陪护人员 用户只要打开浏览器即可随时 查看病人的心率数据 特别是在深夜当工作人员都下班回家后 没有护理人员监 护病人病情时 应用本系统便可完成实时检测 减少了不必要的人力投入 通过 浏览器管理病人 监护人员就可以坐在办公室在浏览器上控制病人 这样不仅可 以在第一时间内发现异常情况 而且可以避免人工监护时疏忽情况的发生 同时 能够有效地节约人力物力 大大提升医院的运作效率 另外 通过实时远程在线 监测可以方便医生了解和掌握病人心率的状态变化 用于对患者健康的分析和判 断 另外系统可在第一时间发现异常情况同时发出警报 使医生迅速赶到对应病 房实施抢救 3 23 2 系统需求分析系统需求分析 为了帮助医院管理人员对病人的心率信息进行管理 根据医院心率检测过程 的应用研究分析 心率检测系统要实现以下五个目标 一 用户在系统前台可以查看患者的实时心率数据 二 患者的心率数据在客户端以动态图形的方式展示 三 当患者心率异常时 系统能够产生报警信号 四 系统实时响应速度要快 避免发生延迟 基于 WebSocket 的物联网实时通信技术应用 16 五 系统需要满足可及时维护和更新的需求 而且要具有稳定性高 扩展 性强的优点 经过对上述五条需求进行分析 心率检测系统主要完成的功能是 实时数据显示 和报警功能 用户进入系统主页后就可以直接查看检测到的心率数据 当系统发 现心率数据异常时系统会自动启动报警 3 33 3 系统架构系统架构 心率检测系统由三部分组成 分别是 数据采集部分 服务器端和终端 系 统结构如图 3 1 所示 图 3 1 系统架构图 系统运行时 首先将后台心率检测传感器采集到的心率数据通过网络传输到 服务器上 Web 服务器接收到心率信息后 随即利用 HTML5 中的 WebSocket 技 术 将数据通过服务器和浏览器之间的全双工信道实时地推送到客户端浏览器 医生通过浏览器就可以实时查看到病人的心率数据 3 43 4 服务器推送技术可行性分析服务器推送技术可行性分析 榆林学院本科毕业设计 论文 17 HTML5 WebSocket 的出现为 C S 应用迁移到 B S 模式下提供了技术基础 由 于 B S 模式具有客户端精简 易于升级维护和通用性好的优点 所以 B S 取代 C S 逐渐成为了一种趋势 B S 应用的关键问题是 Web 通信的问题 在 WebSocket 出现之前 解决客户端和服务器端数据通信的方法主要有轮询 长轮询和流等技 术 这些技术虽然都能够完成客户端和服务器之间的数据交互 但是在数据的实 时性方面都不能满足要求 首先轮询 长轮询和流都是基于 TCP 的单链接 轮询是靠客户端不断的以固 定时间间隔询问服务器是否有新数据到来 由于新数据的产生具有随机性 所以 轮询技术的每一次请求可能都是无用的 而且毫无目的的请求也会造成大量的资 源浪费 同时会造成服务器负载过重的现象 长轮询虽然将连接保持一段时间不 关闭 减少了请求次数 但是如果服务器端的数据更新很快时 长轮询就会退化 为轮询 固长轮询也不能解决数据的实时推送 流技术在实现时在页面中插入了 一个隐藏的 iframe 通过 iframe 在浏览器和服务器之间创建一个永久性的连接 服务器端的数据虽然可以及时的发送出去 但是由于流在穿越防火墙和代理服务 器时会被缓冲并造成一定的延时 所以流也不是解决实时性应用的可行技术 17 由上述分析可知要保证 Web 数据传输的实时性 如果能在客户端和服务器之 间建立一条全双工的通道就可解决轮询 长轮询和流技术不能解决的实时性问题 WebSocket 技术刚好提供了一条满足实时数据传输的全双工通信信道 此外 WebSocket 在网络吞吐量和数据延时方面也具有强大的优势 首先 HTTP 协议的 请求和响应报头信息中都包含了 560 个字节 而 WebSocket 协议的每个消息都 是用一个帧表示的 头信息只有 2 个字节 有实验得出 当用户数量激增时 WebSocket 产生的网络吞吐量和轮询相比是微乎其微的 其次数据从服务器到浏 览器的传输大约需要用 50 毫秒 第二章已说明在使用轮询技术时 一次响应完 成后 客户端需要再次向服务器发送新的请求 这个请求同样也需要 50 毫秒 但是在请求发送的期间服务器无法发送任何消息给浏览器 这样一来服务器就必 须为新数据分配临时空间 长期累积下来 服务器的内存消耗就会非常严重 数 据的延时也会不断的增加 若采用 HTML5 的 WebSocket 技术 连接就会从 HTTP 升级到 WebSocket 虽然数据从服务器传输到浏览器仍然还需要 50 毫秒 但是 WebSocket 提供的全双工信道可保证之后浏览器不用再向服务器发送任何请求 而且双方相互发送数据时互不妨碍对方 服务器也就不会有内存消耗 数据的延 时更不会增加 18 经上述对比分析可知 为了能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论