在WebSocket出现之前的我们主要是通过什么实现实时信息传递呢?

主要使用Ajax轮询、long poll(Ajax长查询)
Ajax轮询——“定时的通过Ajax查询服务端”:
浏览器按规定的时间向服务器发送请求,服务器接受到请求信息后返回响应信息并关闭连接。


$(function() {
//按规定的时间发送请求给服务器setInterval("isHave();",5000);
});function isHave(){$.ajax({url : "localhost/isHave",data : {},datatype: "json",type : "post",   success : function(result) {    console.log(result);}});
}

Ajax长轮询——不间断的通过Ajax查询服务端"

    var getting = {url:'server.php',dataType:'json',success:function(res) {console.log(res);$.ajax(getting); //关键在这里,回调函数内再次请求Ajax}        //当请求时间过长(默认为60秒),就再次调用ajax长轮询error:function(res){$.ajax($getting);}};
$.ajax(getting);


图中有两次请求,第一次很快返回了结果,然后不间断的立即发送第二次请求,但是第二次请求没有获得数据,所以请求迟迟没有返回(被挂在服务器了,但只要有数据就会再次返回),如果第二次的请求返回数据后,第三次请求旋即会立刻发出,这种技术就称为Ajax 长轮询。

但是使用这两种方式都存在一个问题,每个请求都会不断地建立HTTP连接,然后等待服务端处理,可以体现HTTP协议的一个特点,被动性,服务端不能主动联系客户端,只能有客户端发起。
这个时候WebSocket便以及其耀眼的方式出现了。

什么是WebSocket?

WebSocket是HTML5中开始出现、基于Tcp的一种持久协议(相对于HTTP协议而言),它可以实现客户端与服务器端的通信,实现服务器的推送功能。

WebSocket 使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在 WebSocket API 中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输

在 WebSocket API 中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送

WebSocket API的优势在于服务器和客户端可以在固定的时间范围内的任意时刻,相互推送消息。在建立连接之后,服务器可以主动传送数据给客户端

·WebSocket 并不限于以AJAX(或XHR)方式通信,因为Ajax技术需要客户端发起请求,而WebSocket服务器和客户端可以彼此相互推送信息。

Ajax轮询和WebSocket相关推荐

  1. ajax轮询模拟websocket,Ajax轮询和SSE服务器推送数据与websocket模式的区别性学习

    我们试想一下我们做个实时聊天的窗口有几种方法? 在我们不刷新页面并且可以试试更新页面内容的方法 你这时候是不是想到了ajax没错确实可以 Ajax轮询 什么是轮询?顾名思义就是我轮着问你,规定一个时间 ...

  2. HTTP长链接和ajax轮询以及websocket原理理解

    HTTP的生命周期通过 Request 来界定,也就是一个 Request 一个 Response ,那么在 HTTP1.0 中,这次HTTP请求就结束了. 在HTTP1.1中进行了改进,使得有一个k ...

  3. ajax 服务端 除了echo,Ajax轮询——定时的通过Ajax查询服务端

    概念:轮询(polling):客户端按规定时间定时向服务端发送ajax请求,服务器接到请求后马上返回响应信息并关闭连接. test.html     //前端代码 var getting = { ur ...

  4. ajax循环输出,Ajax轮询 select循环输出

    弹出层 .del{color:red} .addname{color:#337ab7} 款项名目操作 {$vo.name} 删除 添加... $(".addname").on(&q ...

  5. webSocket(与http请求区别、请求和返回示例、替代方法:ajax轮询、long poll、Flash、NodeJS实现WebSocket通信代码、原理、WebSocket构造函数详解)

    目录 简介 优点 请求示例 请求成功返回示例 替代方法 Ajax 轮询 long poll Flash NodeJS实现webSocket(ws模块) 服务端代码 客户端代码 在线网页客户端 运行结果 ...

  6. ajax长轮询tornado,Tornado长轮询和WebSocket

    Http协议是一种请求响应式协议, 不允许服务端主动向客户端发送信息. 短轮询是一种简单的实现服务端推送消息的解决方案, 客户端以一定间隔自动向服务端发送刷新请求, 服务端返回要推送的消息作为响应. ...

  7. 第四部分-WebSocket后端轮询代替Ajax轮询

    WebSocket后端轮询代替Ajax轮询 Websocket服务端可以主动推送信息给客户端,解决了http轮询延迟的问题 同时解决服务器上消耗资源的问题 由于Websocket只需要一次HTTP握手 ...

  8. 什么是WebSocket和Ajax轮询?各自区别?各自应用的场景

    什么是Ajax轮询 Ajax它一般是异步的.也能同步使用. 聊天是需要长连接的,在一些场景下我们不想使用比较耗费资源的长连接,又想实现数据的监听,这时候我们就会使用Ajax的轮询. Ajax轮询一般分 ...

  9. websocket和ajax轮询的区别

    1.ajax轮询 ajax,每一个前端开发都用过,都知道它一般是异步的,也能同步使用. 聊天是需要长连接的,在一些场景下我们不想使用比较耗费资源的长连接,又想实现数据监听,这时候我们就会使用ajax的 ...

最新文章

  1. oracle 新增自增字段,SQL server、Oracle中拿到新增列时的自增字段值
  2. TensorFlow从1到2(十三)图片风格迁移
  3. 推荐JQuery学习简介
  4. 再见,Postman...
  5. io流文本文档的快速读取
  6. P2197 【模板】nim游戏
  7. 如何入门 Python 爬虫?
  8. Ubunbu新建的用户使用SecureCrt无法Table补全、无法高亮
  9. w10电脑c盘满了怎么清理_快速清理:Win10系统C盘满了怎么办?
  10. MySQL学生信息管理系统
  11. 如何判断对方列表里是不是好友_如何识别QQ已被对方好友删除?
  12. 古人为什么不发明计算机,成语是汉语言文学中的经典,为何古人能够发明,现代却很少发明?...
  13. Laravel版本更新异常4.2.8- 4.2.9 Declaration of ... CompilerEngine ... should be compa
  14. ubuntu 安装GPU黑屏 修改GRUB_Ubuntu 18.04 安装笔记
  15. 工具系列——XMind 8 Update 7的破解步骤
  16. 物理学(第五版)上册 马文蔚 编|高等教育出版社 大学课后习题答案
  17. JT1078流媒体服务器的开发
  18. Vue项目开发中优雅的切换服务端ip
  19. 大学计算机基础知识判断题,大学计算机基础试题及答案
  20. 华为telnet和ftp配置

热门文章

  1. 新浪SAE上搭建WordPress个人博客网站-开篇
  2. 搭建 gxt-2.2.0 环境,让我们第一个简单程序跑起来
  3. 中兴f650 2.0.3 固件降级_中兴天机Axon11 SE 5G发布 年轻人的第一部5G手机
  4. mysql无法导出表解决方案
  5. android读取URL链接内容
  6. 网络安全人才就业前景如何?网络空间安全未来就业前景和就业方向?
  7. 【干货】多案例解析小程序的全场景跨端运营
  8. VBA之正则表达式(10)-- 添加千分位(2/3)
  9. 计算机音乐教程图片大全,图片+音乐做成视频简单两步操作,一图流音乐视频制作教程...
  10. TI Cortex-M4 USB Host CDC 驱动详解及源代码