当前位置:网站首页>轮询和长轮询的区别
轮询和长轮询的区别
2022-08-01 14:13:00 【CRMEB众邦科技】
- 轮询
由客户端发送请求,服务器接收请求的过程,通过客户端不断请求,使得客户端能够模拟达到类似实时收到服务器的效果。客户端定时向服务器发送Ajax请求,服务器接到请求后马上返回响应信息,并关闭连接。
不管服务端数据有无更新,客户端每隔定长时间请求拉取一次数据,可能有更新数据返回,也可能什么都没有。
适用用户量比较小,不太注重性能的项目,如小型应用、WEB应用、例如系统消息、天气展示等。
优点:逻辑简单,易于理解,开发快速。
缺点:
(1)需要重复建立HTTP连接,占用大量客户端和服务端的连接
资源。
- 客户端越多, 服务端压力越大,很多时候并没有新的数据更新,因此绝大部分请求都是无效请求。
- 数据不一定是实时更新,要看设定的请求间隔,基本会有延迟。


- 长轮询
长轮询是长连接的一种,当服务器收到客户端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,然后判断服务器端数据是否有更新。如果有更新,则进行响应,如果一直没有数据,则会 hold 住请求,直到服务端的数据发生变化,或者等待一定时间超时才会返回。
客户端JavaScript响应处理函数会在处理完服务器返回的信息后,再次发出请求,重新建立连接。像WebQQ/FaceBook早起都是使用长轮询实现的。
优点:消息即时到达,和短轮询比起来,明显减少了很多不必要的HTTP请求次数,在无消息的情况下不会频繁的请求,相比之下节约了资源,在无消息的情况下不会频繁的请求。
缺点:连接挂起会导致资源的浪费,长轮询会造出非常多的请求,不断的请求可能会造成的影响是数据顺序无法得到保证。

- 建议
轮训能够实现的功能长轮训都能满足,从技术角度考虑建议使用长轮训替换轮训实现, 节省服务器性能和带宽, 相比下来开发成本也不高。
源码附件已经打包好上传到百度云了,大家自行下载即可~
链接: https://pan.baidu.com/s/14G-bpVthImHD4eosZUNSFA?pwd=yu27提取码: yu27百度云链接不稳定,随时可能会失效,大家抓紧保存哈。
如果百度云链接失效了的话,请留言告诉我,我看到后会及时更新~
开源地址
码云地址:
http://github.crmeb.net/u/defu
Github 地址:
http://github.crmeb.net/u/defu
边栏推荐
- datetime64[ns] converted to datetime
- 安培龙IPO过会:年营收5亿 同创伟业与中移创新是股东
- iframe tag attribute description detailed [easy to understand]
- openEuler 社区完成首批顾问专家聘用,共同为社区的发展贡献力量
- kubernetes之DaemonSet以及滚动更新
- 直播系统聊天技术(八):vivo直播系统中IM消息模块的架构实践
- Multi-threaded cases - blocking queue
- 我寻找的方向
- [机缘参悟-57]:《素书》-4-修身养志[本德宗道章第四]
- pd groupby后列变索引以及聚合列无列名的问题
猜你喜欢
随机推荐
龙口联合化学通过注册:年营收5.5亿 李秀梅控制92.5%股权
重磅!国内首个开放式在线绘图平台Figdraw突破10万用户!发布《奖学金激励计划》:最高5000元!...
【每日一题】1161. 最大层内元素和
性能优化——资源优化笔记
模型运营是做什么的(概念模型数据库)
Yann LeCun开怼谷歌研究:目标传播早就有了,你们创新在哪里?
[深入研究4G/5G/6G专题-47]: 5G Link Adaption链路自适应-3-下行链路自适应DLLA-PDSCH信道
论文笔记All about Eve: Execute-Verify Replication for Multi-Core Servers
又拿三个大奖?!多力就是要让你吃的更营养更健康
拥抱NFV,Istio 1.1 将支持多网络平面
lua脚本关键
树和二叉树的转换
免费使用高性能的GPU和TPU—谷歌Colab使用教程
珠海首个水环境安全监测系统上线
分布式中的远程调用
高仿项目协作工具【Worktile】,从零带你一步步实现组织架构、网盘、消息、项目、审批等功能
DDL和DML的含义与区别「建议收藏」
E - Red and Blue Graph (Combinatorics)
【每日一题】593. 有效的正方形
MBI5020 LED Driver









