网站大量收购独家精品文档,联系QQ:2885784924

WebSocket在Web实时通信领域的研究_李代立(学号0820080259).doc

WebSocket在Web实时通信领域的研究_李代立(学号0820080259).doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WebSocket在Web实时通信领域的研究_李代立(学号0820080259)

WebSocket在Web实时通信领域的研究 李代立,陈榕 (同济大学基础软件工程中心 上海 200092) 摘 要: 分析目前几种Web实时事件响应方案的特点,着重HTML5 WebSocket的实时通信机制,并通过WebSocket与AJAX长轮询的实验对比,展示WebSocket在Web实时通信领域的应用开发方法和效率,为Web实时通信提供低延时、低网络吞吐量的解决方案。 关键词: WebSocket;Web实时通信; AJAX The Research of WebSocket Based on Web Real-time Communication LI Dai-li ,CHEN Rong (System Software Engineering Centre of Tongji University, Shanghai 200092, China) Abstract: Some schemes and their features are introduced on web real-time communications. More emphasis is put on studying real-time communication mechanism based on HTML5 Web Socket. Then a comparative experiment is made between WebSocket and AJAX to represent the simple method and high efficiency in developing real-time web applications by WebSocket . At last we provide a low latency and low network throughput solution. Keywords:WebSocket; Web real-time communication; AJAX 引言 在eb应用高速发展的今天,eb即时数据通强烈 图1 传统Web应用模型与Ajax Web应用模型 该方案健壮易用的特点使其经常被应用于Web系统中,例如,Adaptive TTR[3]机制允许服务器改变TTR,客户端便能够依据数据的状态改变以不同频率来拉取数据。因此,这种动态TTR机制比静态TTR模式更好。但它并不能完全保证的数据精确度,会带来不必要的网络流量。 HTTP流 HTTP流是1992年网景公司推出的push机制,叫“动态文档”[4]。有两种形式:页面流和服务流。 页面流是指页面上不间断的HTTP连接响应。大部分Web服务器处理发送完响应之后立即退出。但这种情况下,连接通过很长的循环来保持打开状态,服务器脚本利用事件注册或者其他技术来侦测数据状态的改变。当状态改变时,数据进行传输,但传输完并不会直接关闭连接。 服务流依赖于XMLHttpRequest对象,在AJAX技术下被称做Reverse AJAX或者Comet[5]。服务流是XMLHttpRequest在后台的长连接,它在连接长度和频率上带来了灵活性。页面会一次性正常加载,数据流的连接可以在预定义的生命周期内。服务器会像页面流中一样不停的循环,浏览器读取最新响应以更新内容。 Comet和BAYEUX协议 Comet允许服务端发送消息到客户端而无需客户端显示的请求。由于AJAX应用缺少通信标准,在Cometd group[8]草拟了一个叫BAYEUX的Comet协议。BAYEUX的消息格式是基于JavaScript语言子集的数据交互格式的,该协议已经被许多Web服务端实现。 但Comet的绊脚石在于各浏览器对XHR、iFrames两种实现Comet所需数据块的支持程度不尽相同,没有统一的实现标准。另外无论是从网络还是开发角度来看,Comet管理两个连接的开销都很大。这些开销带来的直接影响就是Comet应用中的传输延时,限制了它们所提供的实时通信的精确性全双工连接需要的不仅仅是从服务器到客户端的下行连接。简言之,HTTP不是为实时的,全双工通信设计的HTML5规范中定义,WebSocket在浏览器和服务器之间采用单socket全双工(或者叫双向)传输来””和信息。这不但可以避免Comet中存在的连接和可移植问题,还能够提供比Ajax轮询更高效的解决方案。目前,HTML5 WebSocket是推动web全双工实时通信的主要机制的协议比较简单客户端和普通的浏览器一样通过80或者443端口和服务器进行请求握手,服务器根据http header识别是否一个请求,如果是,则将请求升级为一个连接,握手成功后就进入双向长连接的数据传输阶段的数据传输是基于帧的方式0x

文档评论(0)

wuyuetian + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档