websocket技术的实时通信工具设计与实现(附件)【字数:8157】
摘 要随着互联网通信技术的日益发展,它早已背离了当初设计时候的初衷,现如今人们对互联网的依赖是越来越强,也正是由于这份依赖,使得互联网的相关应用得到了飞速的发展。尤其是JavaScript技术的发展应用,针对浏览器前端的应用交互性越来越强,对web即时通信的要求也变得越来越高。本文把web即时通信系统的开发当做背景,重点研究基于HTML5 WebSocket协议方面的即时信息交互通信模式。实现了基于WebSocket网页端即时通信工具,内容主要涉及Node.js服务器的搭建,客户端的搭建,Web即时技术WebSocket的使用等方面。通过对比当前市场上运用的web即时通信技术,如Ajax轮询,长轮询,长连接等的比较,以此来体现WebSocket协议在即时通信技术方面的优势,它的工作模式在很大程度上的减少了服务器的负载,节省了带宽的使用率。
目 录
第一章 绪论 1
1.1 研究背景 1
1.2 研究现状和发展趋势 1
1.3 本文的研究方法和研究内容 3
1.3.1 研究方法 3
1.3.2 本文研究内容 3
1.4 论文结构 3
第二章 实时通信技术相关简介 3
2.1 Websocket协议 3
2.2 长轮询 4
2.3 长连接 6
2.4 Ajax轮询 8
2.5 Node.js简介 9
2.6 Websocket与Node.js的实时Web通信技术 10
2.7 Websocket兼容性 10
第三章 系统的设计和实现 11
3.1 系统整体设计 11
3.2 客户端的实现 11
3.3 服务器端的实现 12
第四章 系统运行与测试 14
4.1 系统运行 14
4.2 系统测试 14
4.2.1 测试标准 14
4.2.2 测试用例 14
4.2.3 测试结果 14
结束语 16
致 谢 17
参考文献 18
第一章 *好棒文|www.hbsrm.com +Q: #351916072#
绪论
1.1 研究背景
日常生活中,使用的都是B/S架构的系统,即浏览器和服务器的结构。B/S架构的系统使用的都是HTTP协议,HTTP协议主要用于通过Internet发送请求消息和响应消息,但随着技术的更新,尤其是JavaScript技术的发展应用,针对前端的应用交互性越来越强,HTTP协议无法满足。从而越来越多的传统网站开始采用即时推送技术,而所应用的技术绝大多数都是轮询。轮询,就是指在某一段时间内,由浏览器向服务器端发送某个HTTP请求,然后再由服务器端进行数据处理,返回最新的数据给客户端的浏览方式。传统的这种即时推送技术得到广泛的应用,但有其不足的地方,例如,每次发送请求的时候,都需要不断的提交新的请求,才能够得到最新的消息,而这种请求的头文件需要相当长的处理时间,并且包含的关键信息量却很少,这种模式大大的占据了带宽的使用率,也相当的耗费服务器的处理速度。由于这样的缺点,崭新的技术也诞生了comet基于HTTP长连接的“服务器推”技术,其使用了双向信息传递的Ajax,但是Ajax仍然避免不了请求的不断发送,这种连接方式大多也是采用的长连接,也导致了资源的不断浪费。因此,为了解决这种资源耗费严重的问题,HTML5采用了新的协议,就是HTML5 Websocket协议,此项协议不仅在很大程度上解决了资源耗费严重的问题,而且还同时完成了信息的即时交互,该协议最大的特点就是在于服务器可以主动传送数据给客户端。
1.2 研究现状和发展趋势
信息化时代的快速发展,我们对浏览器的依赖只会越来越强,在日常生活中,我们的个人电脑,手机几乎所有的电子产品都离不开浏览器。在发展快速的信息化时代里,是绝对离不开HTML5 Websocket即时通信的相关技术,目前使用的Ajax轮询,长轮询,长连接等web实时技术根本无法在实质上解决信息及时交互的问题。
Websocket技术的到来,从根本上解决了交互的问题,直接向客户端推送数据的方式,使得浏览器端和服务器端之间的数据交换,信息交互变得更加简单。异步的通信方式也使的它变得更加有效率,事件驱动也可以防止事物堆积。此项技术,在不久的将来必定会被广泛应用。
1.3 本文的研究方法和研究内容
1.3.1 研究方法
本文通过对目前广泛使用的实时Web通信方法Ajax轮询,HTTP长轮询,长连接以及Websocket协议进行分析,分析它们在信息交互方面各有什么优缺点。并在对Websocket协议关键技术的研究基础上,设计并实现一种新的实时Web通信技术方案。
1.3.2 本文研究内容
深入研究Html5中Websocket协议的关键技术,从Websocket协议的实现原理入手,提出一种以Websocket为基础的实时web通信方案,并在此基础上塔尖实时通信技术。
本课题采用Node.js的Express框架和Socket.io类库来实现基于Websocket的实时交互系统。实现在不同浏览器上的即时通信,此方发送信息,彼方能即时收到信息。同样反之亦然,做到即时通信。通过Websocket即时通信协议实现在线即时通信的客户端和服务器端的数据交互。此系统采用Node.js作为服务器端的开发语言搭建通信服务器,使用Eclipse集成环境,Java程序设计语言实现本地客户端的设计。
介绍当前主流的web实时性技术,研究Ajax轮询,HTTP长轮询,长连接及Websocket,分析它们是如何进行信息交互的,各自在信息交互方面有什么优势以及有什么劣势,缺点怎么解决。通过对比比较突出Websocket在信息交互时有哪些优势。
1.4 论文结构
第一章 绪论:简述本论文研究背景,方法以及主要内容
第二章 实时通信技术相关简介:介绍当前常用的实时通信技术
第三章 系统的设计和实现:详细讲解系统实现过程
第四章 系统运行与测试:运行系统检测是否能正常运行
第二章 实时通信技术相关简介
2.1 Websocket协议
目前在Web即时通信方面有许多技术,例如:Ajax轮询,长轮询,连接,长连接,还有就是本文提及的Websocket协议。Websocket是HTML5中的新协议,主动推信息的方式使得即时通信变得更加简单。
相对于其它即时通信方式,它们的方法大体上都十分的相似,但是它们都包含了HTTP的请求头和响应首标,在这些请求头和响应首标中有用的信息只有一小部分,绝大部分内容都是不需要的数据和延迟。此外,上述的几种通信方式,都需要服务器端等待请求返回,只能在收到请求返回后才能够继续发送下一个请求,这样的方式显然的拖慢了网络传输速度。这些都是web通信中的半双工通信的特性。为了解决上述提到的问题,HTML5连接特性的规范当中就有了新的协议,即HTML5 Websocket协议。
目 录
第一章 绪论 1
1.1 研究背景 1
1.2 研究现状和发展趋势 1
1.3 本文的研究方法和研究内容 3
1.3.1 研究方法 3
1.3.2 本文研究内容 3
1.4 论文结构 3
第二章 实时通信技术相关简介 3
2.1 Websocket协议 3
2.2 长轮询 4
2.3 长连接 6
2.4 Ajax轮询 8
2.5 Node.js简介 9
2.6 Websocket与Node.js的实时Web通信技术 10
2.7 Websocket兼容性 10
第三章 系统的设计和实现 11
3.1 系统整体设计 11
3.2 客户端的实现 11
3.3 服务器端的实现 12
第四章 系统运行与测试 14
4.1 系统运行 14
4.2 系统测试 14
4.2.1 测试标准 14
4.2.2 测试用例 14
4.2.3 测试结果 14
结束语 16
致 谢 17
参考文献 18
第一章 *好棒文|www.hbsrm.com +Q: #351916072#
绪论
1.1 研究背景
日常生活中,使用的都是B/S架构的系统,即浏览器和服务器的结构。B/S架构的系统使用的都是HTTP协议,HTTP协议主要用于通过Internet发送请求消息和响应消息,但随着技术的更新,尤其是JavaScript技术的发展应用,针对前端的应用交互性越来越强,HTTP协议无法满足。从而越来越多的传统网站开始采用即时推送技术,而所应用的技术绝大多数都是轮询。轮询,就是指在某一段时间内,由浏览器向服务器端发送某个HTTP请求,然后再由服务器端进行数据处理,返回最新的数据给客户端的浏览方式。传统的这种即时推送技术得到广泛的应用,但有其不足的地方,例如,每次发送请求的时候,都需要不断的提交新的请求,才能够得到最新的消息,而这种请求的头文件需要相当长的处理时间,并且包含的关键信息量却很少,这种模式大大的占据了带宽的使用率,也相当的耗费服务器的处理速度。由于这样的缺点,崭新的技术也诞生了comet基于HTTP长连接的“服务器推”技术,其使用了双向信息传递的Ajax,但是Ajax仍然避免不了请求的不断发送,这种连接方式大多也是采用的长连接,也导致了资源的不断浪费。因此,为了解决这种资源耗费严重的问题,HTML5采用了新的协议,就是HTML5 Websocket协议,此项协议不仅在很大程度上解决了资源耗费严重的问题,而且还同时完成了信息的即时交互,该协议最大的特点就是在于服务器可以主动传送数据给客户端。
1.2 研究现状和发展趋势
信息化时代的快速发展,我们对浏览器的依赖只会越来越强,在日常生活中,我们的个人电脑,手机几乎所有的电子产品都离不开浏览器。在发展快速的信息化时代里,是绝对离不开HTML5 Websocket即时通信的相关技术,目前使用的Ajax轮询,长轮询,长连接等web实时技术根本无法在实质上解决信息及时交互的问题。
Websocket技术的到来,从根本上解决了交互的问题,直接向客户端推送数据的方式,使得浏览器端和服务器端之间的数据交换,信息交互变得更加简单。异步的通信方式也使的它变得更加有效率,事件驱动也可以防止事物堆积。此项技术,在不久的将来必定会被广泛应用。
1.3 本文的研究方法和研究内容
1.3.1 研究方法
本文通过对目前广泛使用的实时Web通信方法Ajax轮询,HTTP长轮询,长连接以及Websocket协议进行分析,分析它们在信息交互方面各有什么优缺点。并在对Websocket协议关键技术的研究基础上,设计并实现一种新的实时Web通信技术方案。
1.3.2 本文研究内容
深入研究Html5中Websocket协议的关键技术,从Websocket协议的实现原理入手,提出一种以Websocket为基础的实时web通信方案,并在此基础上塔尖实时通信技术。
本课题采用Node.js的Express框架和Socket.io类库来实现基于Websocket的实时交互系统。实现在不同浏览器上的即时通信,此方发送信息,彼方能即时收到信息。同样反之亦然,做到即时通信。通过Websocket即时通信协议实现在线即时通信的客户端和服务器端的数据交互。此系统采用Node.js作为服务器端的开发语言搭建通信服务器,使用Eclipse集成环境,Java程序设计语言实现本地客户端的设计。
介绍当前主流的web实时性技术,研究Ajax轮询,HTTP长轮询,长连接及Websocket,分析它们是如何进行信息交互的,各自在信息交互方面有什么优势以及有什么劣势,缺点怎么解决。通过对比比较突出Websocket在信息交互时有哪些优势。
1.4 论文结构
第一章 绪论:简述本论文研究背景,方法以及主要内容
第二章 实时通信技术相关简介:介绍当前常用的实时通信技术
第三章 系统的设计和实现:详细讲解系统实现过程
第四章 系统运行与测试:运行系统检测是否能正常运行
第二章 实时通信技术相关简介
2.1 Websocket协议
目前在Web即时通信方面有许多技术,例如:Ajax轮询,长轮询,连接,长连接,还有就是本文提及的Websocket协议。Websocket是HTML5中的新协议,主动推信息的方式使得即时通信变得更加简单。
相对于其它即时通信方式,它们的方法大体上都十分的相似,但是它们都包含了HTTP的请求头和响应首标,在这些请求头和响应首标中有用的信息只有一小部分,绝大部分内容都是不需要的数据和延迟。此外,上述的几种通信方式,都需要服务器端等待请求返回,只能在收到请求返回后才能够继续发送下一个请求,这样的方式显然的拖慢了网络传输速度。这些都是web通信中的半双工通信的特性。为了解决上述提到的问题,HTML5连接特性的规范当中就有了新的协议,即HTML5 Websocket协议。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/wljs/85.html