首页
学习
活动
专区
圈层
工具
发布

轮询与长轮询

轮询 """ 轮询即轮番询问 让浏览器定时(例如每隔5s中发送一次)通过ajax偷偷滴朝服务端发送请求获取数据 不足之处 消息延迟 请求次数过多 损耗资源严重 效率低 基本不用...""" 长轮询 """ 服务端给每个客户端创建一个队列,让浏览器通过发送ajax请求,请求各自队列中的数据,如果没有数据则会阻塞但是不会一直阻塞,利用timeout参数加异常处理的形式最多阻塞30s之后返回...""" 长轮询实现简易版群聊功能 # 长轮询实现聊天室功能 url(r'^home/$',views.home), url(r'^send_msg/$',views.send_msg), url(r'^...request.GET.get('name') # 给每个用户生成一个对应的队列对象 q_dict[name] = queue.Queue() return render(request,'home.html

1.8K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    轮询、长轮询、长连接、WebSocket

    前言 实现即时通讯常见的有四种方式,分别是:轮询、长轮询(comet)、长连接(SSE)、WebSocket。 轮询 很多网站为了实现推送技术,所用的技术都是轮询。...轮询是在特定的的时间间隔(如每1秒),由客户端浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。...长轮询 客户端向发起一个到服务端的请求,然后服务端一直保持连接打开,直到数据发送到客户端为止。...相对于HTTP请求需要等待客户端发起请求服务端才能响应,延迟明显更少;即使是和Comet等类似的长轮询比较,其也能在短时间内更多次地传递数据。 保持连接状态。...缺点:相对来说,开发成本和难度更高 总结 轮询(Polling) 长轮询(Long-Polling) Websocket 长连接(SSE) 通信协议 http http tcp http

    10.2K33

    轮询和长轮询的区别

    1.轮询由客户端发送请求,服务器接收请求的过程,通过客户端不断请求,使得客户端能够模拟达到类似实时收到服务器的效果。...图片图片2.长轮询长轮询是长连接的一种,当服务器收到客户端发来的请求后,服务器端不会直接进行响应,而是先将这个请求挂起,然后判断服务器端数据是否有更新。...像 WebQQ/FaceBook 早起都是使用长轮询实现的。...优点:消息即时到达,和短轮询比起来,明显减少了很多不必要的 HTTP 请求次数,在无消息的情况下不会频繁的请求,相比之下节约了资源,在无消息的情况下不会频繁的请求。...缺点:连接挂起会导致资源的浪费,长轮询会造出非常多的请求,不断的请求可能会造成的影响是数据顺序无法得到保证。

    2.9K40

    GPIO—按键轮询

    12.3软件设计 12.3.1标题软件设计思路 实验目的:本实验通过轮询读方式取GPIO的输入电平判断按键是否按下,并操作对应LED。...按键初始化:GPIO端口时钟使能、GPIO引脚设置为输入(PA0, PG15, PC13, PE3); 封装每个按键处理函数:读取按键GPIO状态,操作对应LED灯亮灭; 主函数轮询按键状态:一直检测是否有按键被按下...; 本实验配套代码位于“5_程序源码\5_GPIO—按键轮询\”。...(); // 轮询向下键 DownKeyPolling(); // 轮询向左键 LeftKeyPolling(); // 轮询向右键 RightKeyPolling(); } 1~4行:初始化LED灯和按键...; 6~16行:一直循环查询每个按键当前状态,从而判断对应按键是否按下; 12.4实验效果 本实验对应配套资料的“5_程序源码\5_GPIO—按键轮询\”。

    3.2K20

    WebSocket,不再“轮询”

    简单举两个例子: (1) 页面地图上要实时显示在线人员坐标:传统基于HTTP接口的处理方式是轮询,每次轮询更新最新的坐标信息。...我们只能使用"轮询":每隔一段时候,就发出一个询问,了解服务器有没有新的信息。但这种方式即浪费带宽(HTTP HEAD 是比较大的),又消耗服务器 CPU 占用(没有信息也要接受请求)。...长轮询主要是发出一个HTTP请求到服务器,然后保持连接打开以允许服务器在稍后的时间响应(由服务器确定)。...虽然长轮询是可以解决这一问题的,但它会耗费更多的资源,如CPU、内存和带宽等,要想很好的解决实时通信问题就需要设计和发布一种新的协议 1.2....11.png 示例的代码提供,app.component.html 12.png app.component.ts 13.png app.component.css 14.png

    1.9K10

    Round Robin 轮询调度算法Round Robin 轮询调度算法

    Round Robin 轮询调度算法 轮询调度(Round-Robin Scheduling) 轮询调度(Round Robin Scheduling)算法就是以轮询的方式依次将请求调度不同的服务器,即每次调度执行...轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。...轮询调度算法流程 假设有一组服务器N台,S = {S1, S2, …, Sn},一个指示变量i表示上一次选择的服务器ID。变量i被初始化为N-1。...= i); return NULL; 轮询调度算法假设所有服务器的处理性能都相同,不关心每台服务器的当前连接数和响应速度。当请求服务间隔时间变化比较大时,轮询调度算法容易导致服务器间的负载不平衡。

    3.8K30

    简易聊天室的实现 - Ajax轮询与长轮询

    什么是轮询   轮询即rolling,通过Ajax循环访问服务端直到获取信息返回并关闭连接。 通俗点讲就是连续访问服务器,获取服务端数据并在前端输出。...Ajax轮询   对于Ajax轮询, 我们可以简单的一笔带过,因为他真的太消耗服务器资源了。   ...Ajax轮询前端 index.html通过每隔一段时间访问后端 server.php并通过Jquery更新页面信息,后端负责判断是否有新信息通过json的形式传递给前端,我们来看一个样例: 前端:   而这种Ajax轮询的方式无论如何都会每1s访问一次服务端,前一次请求完成后,无论有无结果返回,一秒之后下一次请求又会发出。这就叫做Ajax轮询。...> Ajax长轮询   对于聊天室的实现,相比Ajax轮询,Ajax长轮询是一个更好的方式。它优化了客户端与服务端之间的信息获取逻辑。

    1.9K11

    ajax实现轮询

    我们都知道聊天是需要长连接的,一般使用websocket,那么在一些场景下我们不想使用比较耗费资源的长连接,又想实现数据监听,这时候我们就会使用ajax的轮询。 那Ajax的轮询是什么?...其实ajax轮询一般分为两种。 第一种是设定一个定时器,无论有无结果返回,时间一到就会继续发起请求,这种轮询耗费资源,也不一定能得到想要的数据,这样的轮询是不推荐的。...第二种轮询就是在第一次请求的时候,如果返回数据了那么就在成功的回调里面再次发起这个请求,就像递归一样,调用本方法。如果时间太久,失败了,同样的再次调用这个请求,也就是本函数。...当然,长轮询也需要后台配合,没有数据改变的时候就不用返回,或者约定好逻辑。 ajax的轮询就是这么简单,不难,但是用不好就会造成性能上很大的问题,谨慎使用。

    94210

    【春节日更】websocket和轮询及长轮询的理解

    今日分享: websocket 和 轮询 及 长轮询 的理解 01 轮询 轮询 :客户端以一定的时间间隔向服务端发出请求,以频繁请求的方式来保持客户端和服务器端的同步。...没有(Response) ---- loop 02 长轮询 长轮询:当服务器收到客户端发来的请求后, 服务器端不会直接进行响应,而是先将这个请求挂起,然后判断服务器端数据是否有更新。...服务端:balabalabalabala 服务端:balabalabalabala 服务端:哈哈哈哈哈啊哈哈哈哈 服务端:笑死我了哈哈哈哈哈哈哈 04 总结 长轮询和短轮询比起来,明显减少了很多不必要的...长轮询的缺点在于,连接挂起也会导致资源的浪费。 HTML5 WebSocket 设计出来的目的就是要取代轮询和 Comet 技术。使客户端浏览器具备像 C/S 架构下桌面系统的实时通讯能力。...从兼容性角度考虑,短轮询 > 长轮询 > WebSocket; 从性能方面考虑,WebSocket > 长轮询 > 短轮询。

    1.1K10

    IM通信技术快速入门:短轮询、长轮询、SSE、WebSocket

    常用技术 客户端轮询:传统意义上的短轮询(Short Polling) 服务器端轮询:长轮询(Long Polling) 单向服务器推送:Server-Sent Events(SSE) 全双工通信:WebSocket...轮询间隔不好控制。如果实时性要求较高,短轮询是明显的短板,但如果设置太长,会导致消息延迟。 长轮询(Long Polling) 实现原理 客户端发送一个请求,服务器会hold住这个请求。...改进点 长轮询是基于短轮询上的改进版本:减少了客户端发起Http连接的开销,改成在服务器端主动地去判断关注的内容是否变化。...基于iframe的长轮询 基于iframe的长轮询是长轮询的另一种实现方案。...减少网络延迟: 与轮询和长轮询相比,WebSocket 可以显著减少网络延迟,因为不需要在每个请求之间建立和关闭连接。

    1.8K30

    传统轮询、长轮询、服务器发送事件与WebSocket

    长轮询(Long Polling) 上面两种传统的轮询方式都存在一个严重缺陷:程序在每次请求时都会新建一个HTTP请求,然而并不是每次都能返回所需的新数据。...这时我们可以采用长轮询方式解决这个问题。 注意 长轮询与以下将要提到的服务器发送事件和WebSocket不能仅仅依靠客户端JavaScript实现,我们同时需要服务器支持并实现相应的技术。...服务器发送事件(Server-Sent Event) 服务器发送事件(以下简称SSE)是HTML 5规范的一个组成部分,可以实现服务器到客户端的单向数据通信。...SSE的浏览器支持情况如下图所示: SSE Support WebSocket WebSocket同样是HTML 5规范的组成部分之一,现标准版本为RFC 6455。...,但是占用带宽较少 与长轮询相似,除非每次发送请求后服务器不需要断开连接 无需循环等待(长轮询),CPU和内存资源不以客户端数量衡量,而是以客户端事件数衡量。

    3.8K30
    领券