Ajax轮询,Ajax长轮询和websocket简单介绍

Stella981
• 阅读 653

1、ajax轮询

ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。

客户端:你好在吗?

客户端:你好在吗?

客户端:你好在吗?

服务端:在的
2、long poll

(长轮询)其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型(一直在呼叫,等不到你,我愿孤独终老,很执着),也就是说,客户端发起连接后,如果没消息,就一直不返回Response给客户端。直到有消息才返回或超时,返回完之后,客户端再次建立连接,周而复始,基于事件的触发,一个事件接一个事件。
客户端:你好在吗...........................

服务端:在的

客户端:终于等到你

服务端:东西给你,再见

客户端:你好我又来了...........
Ajax轮询与(长轮询)long poll都属于不断发送http请求,然后等待服务器处理,在这里可以明显的看到http协议一个特点,被动性,服务端不能主动联系客户端,只有客户端发起(服务端:不是我高冷,我也想

主动出击,奈何实力他不允许啊,我也很绝望)。

缺点:Ajax轮询需要服务器有很快的处理速度与快速响应(永动机要诞生了,累死你丫的)。long poll需要很高的并发(高速公路需要有很多的通道口,不然堵车不能怪我),体现在同时容纳请求的能力。

3、webSocket是html5一种新的协议,实现了浏览器与服务器之间的全双工通信,能很好的节省服务器资源与带宽,并在服务器端与浏览器端实现实时通行,他建立在TCP之上, 同http一样,通过tcp来传输数据。
特点:
     1)只需要一次HTTP握手,所以说整个通讯过程是建立在一次连接/状态中,服务器端会知道连接的信息,知道客户端关闭请求,同时由服务器主动推送,当有信息需要发送时,直接发送。

   2)客户端的连接通过session对象存储,能够实现实时推送,与Ajax沦陷和 long poll 相比有明显的优势(webSocket:不要迷恋哥,哥就是这么优秀)。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
java将前端的json数组字符串转换为列表
记录下在前端通过ajax提交了一个json数组的字符串,在后端如何转换为列表。前端数据转化与请求varcontracts{id:'1',name:'yanggb合同1'},{id:'2',name:'yanggb合同2'},{id:'3',name:'yang
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Wesley13 Wesley13
3年前
SSE技术详解:一种全新的HTML5服务器推送事件技术
前言一般来说,Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询、Comet技术、WebSocket技术、SSE(ServersentEvents)。关于这4种技术方式的优缺点,请参考《Web端即时通讯技术盘点:短轮询、Comet、Websocket
Stella981 Stella981
3年前
IM客户端消息推送的几种方式及特点
提起消息推送一般人们会经常提起的有以下几种:1.轮询顾名思义,客户端定期去向服务端询问是否有新的消息,简单点说就是服务端不关心客户端的地址是什么,客户端来询问,直接告诉它就行。这种方案最简单,但是却不适用于即时通讯产品,因为即时通讯软件的消息传递机制与一般的消息推送的区别就在即时这点,如果采用轮询的方式,客户端每几秒就连一次服务器,对于手机电量与
Easter79 Easter79
3年前
SpringBoot2.x服务器端主动推送技术
一.服务端推送常用技术介绍  服务端主流推送技术:websocket、SSE等  1.客户端轮询:ajax定时拉取后台数据    js  setInterval定时函数  ajax异步加载 定时向服务器发送请求    服务器压力会较大  2.服务端主动推送:websocket《推荐使用》    全双工即双向通讯,本质上是一个
Stella981 Stella981
3年前
Edge不支持Service Send Event替代方案
使用长轮询替代:js://SendEvent//控制是否继续轮询varisEventClose1;//创建XMLHttpRequestfunctionc
Stella981 Stella981
3年前
Comet:基于 HTTP 长连接的“服务器推”技术
很多应用譬如监控、即时通信、即时报价系统都需要将后台发生的变化实时传送到客户端而无须客户端不停地刷新、发送请求。本文首先介绍、比较了常用的“服务器推”方案,着重介绍了Comet-使用HTTP长连接、无须浏览器安装插件的两种“服务器推”方案:基于AJAX的长轮询方式;基于iframe及htmlfile的流方式。最后分析了开发Comet
Wesley13 Wesley13
3年前
Java 通信
前言一般来说,Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询、Comet技术、WebSocket技术、SSE(ServersentEvents)。关于这4种技术方式的优缺点,请参考《Web端即时通讯技术盘点:短轮询、Comet、Websocket、SSE》。本文将专
Stella981 Stella981
3年前
SpringBoot2.x服务器端主动推送技术
一.服务端推送常用技术介绍  服务端主流推送技术:websocket、SSE等  1.客户端轮询:ajax定时拉取后台数据    js  setInterval定时函数  ajax异步加载 定时向服务器发送请求    服务器压力会较大  2.服务端主动推送:websocket《推荐使用》    全双工即双向通讯,本质上是一个