Comet工作原理
来源:互联网 发布:淘宝店铺 武汉飞鱼运动 编辑:程序博客网 时间:2024/06/06 11:47
1.概念
Comet是通用术语,描述协议和为浏览器提供可行且可拓展的低延迟数据传输实现的集合。目标包括随时从服务端向客户端推送数据,提升传统ajax的速度和可拓展性。
2.工作原理
Comet通过更智能的长连接管理和减少每个连接的服务器资源,Comet相对于传统web服务,,更易于提供更多的同步连接,客户端与服务器之间数据传输更快。相对于客户端,采用的技术有轮询,长轮询,永久帧,XHR流和websocket.
- 轮询:网站每x毫秒发出一个请求来检查是否有更新需要呈现在用户页面上。
setTimeout(function(){xhrRequest({"foo":"bar"})},2000);function xhrRequest(data){ var xhr = new XMLHttpRequest(); xhr.open("get","foo.php",true); xhr.onreadyStatechange=function(){ if(xhr.readyState == 4){ //处理服务器返回的更新 } }}
- 长轮询
即浏览器发送一个请求到服务器,而服务器在有可用的新数据时才响应。服务端要保持一个所有未响应请求和它们对应连接的大集合。服务端通过返回Transfer-Encoding:chuncked
基本长轮询例子:
function longPoll(url,callback){ var xhr=new XMLHttpRequest(); xhr.onreadystatechange=function(){ if(xhr.status==4){ //发送另一个请求,重新连接服务器 callback(xhr.responseText); xhr.open('GET',url,true); xhr.send(null); } } //连接到服务器以打开一个请求 xhr.open('post',url,true); xhr.send(null); }
- 永久帧
方法是打开一个隐藏的iframe,请求一个基于HTTP1.1块编码的文档。
function foreverFrame(url,callback){ var iframe = body.appendChild(document.createElement("iframe")); iframe.style.display="none"; iframe.src=url+"?callback=parent.foreverFrame.callback"; this.callback = callback; }
- XHR流
xhr流是通过一个标准的XMLHttpRequest获得的,但能够在onreadystatechange事件中readyState为3时去访问服务器发送的数据(在响应完成之前),这样即无需等待连接关闭就可以操作数据。但IE不支持该方法。
Comet通信的连接只允许服务器向客户端推送消息,没有达到双向连接。
阅读全文
0 0
- comet工作原理概述
- Comet工作原理
- Comet
- comet
- comet
- Comet
- Comet
- Comet
- comet
- comet
- comet
- Comet
- Comet
- comet
- Comet
- Comet
- WEB IM 实现原理 xmpp + comet
- 工作原理
- 正则表达式(栈的应用)
- log4plus配置文件放到中文路径加载失败
- centos 使用mail发送邮件
- C# 中的委托和事件
- 文章标题
- Comet工作原理
- SpringBoot使用教程【1】Restful API设计 返回json,xml格式
- MyBatis Spring整合配置映射接口类与映射xml文件
- Android 内置google dialer后发现拨号后,没有通话界面显示。
- SolrCloud详解及搭建
- MySQL中的锁(表锁、行锁,共享锁,排它锁,间隙锁)
- C语言如何不用goto、多处return进行错误处理?
- easyui-combobox
- 关闭Android jack 编译