gevent中如何实现长轮询

转载 2016年08月29日 16:00:36
      浏览网页时,浏览器会传HTTP 请求到服务器,服务器会根据请求将网页的内容传给浏览器,但是在很多的情况下,使用者会需要看到最新的即时性资讯,例如观看股票市场行情,而在以前只能靠着重新载入网页才能获得最新信息,但是这样不但很浪费时间,也会佔用很多不必要的网络资源,并不是一个好的方式,长轮询就是解决这个问题的一个办法。

什么是长轮询?

1.长时间轮询(long-polling)是让服务器在接收到浏览器发出的HTTP 请求后,服务器会等待一段时间,若在这段时间里面伺服器有新的数据更新,它就会把最新的数据传给浏览器,如果等待的时间到了之后也没有新资料的话,就会送一个回应给浏览器,告知浏览器资料没有更新;
2.长时间轮询可以减少产生轮询(polling)造成网路频宽浪费的状况。


浏览器如何长轮询?


浏览器向服务器发送Ajax请求,当接收到服务器响应后,需要向服务求发送新的请求。

服务器如何处理长轮询?

1.服务器端要能够一直保持住客户端的请求,直到有响应消息;同时服务器对请求的处理要支持非阻塞模式;
2.需要使用Event,python内置Event是阻塞的,gevent的却是非阻塞的。

设计场景

1.浏览器请求获取当前的字符信息,并显示;
2.服务器后天接受某个请求以产生随机字符并存储下来,同时推送给浏览器。

涉及问题

1.服务器需知道浏览器获取信息的标识来推送最新的信息;
2.当浏览器请求更新信息时,服务器可通过Event来保留当前信息,当有新信息来的时候,重设Event来唤醒之前的处理。

以上就是gevent长轮询实现的相关介绍,希望本文的分享对大家有所帮助。


文章来源:麦子学院

原文链接:http://www.maiziedu.com/wiki/frame/polling/


相关文章推荐

Gevent的长轮询实现方法详解

长轮询 1.浏览网页时,浏览器会传HTTP 请求到服务器,服务器会根据请求将网页的内容传给浏览器,但是在很多的情况下,使用者会需要看到最新的即时性资讯,例如观看股票市场行情,而在以前只能靠着重新载...

js+php实现comet(ajax长轮询)推送功能

简单描述: comet是用ajax实现的服务器推送,有两种实现comet的方式,长轮询和流,这里只实现长轮询。 长轮询的过程:页面发起一个服务器请求,然后服务器一直保持连接打开,直到有数据返回。返回数...
  • mlx212
  • mlx212
  • 2015年11月11日 16:31
  • 4992

【PHP】实现ajax长轮询

传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上查询最新的数据。这种拉取数据的方式需要很短的时间间隔才能保证数据的精确度,但太短的时间间隔客服端会对服务器在短时间内发送出多个请求。反转AJ...

用长轮询实现Chat并迁移到Azure测试

本文转自博客园:http://www.cnblogs.com/indream/p/3187540.html 公司的OA从零开始进行开发,继简单的单点登陆、角色与权限、消息中间件之后,轮到在线即时...

基于HTTP长轮询实现简单推送

应用场景:设备为安卓、PC以及服务器,要求PC端能够单向给移动端发送消息指令,安卓端解析消息,进行后续处理动作。其中安卓端为基于Phonegap开发,说白了,就是HTML+JS。 规模:正常应用为20...

使用icomet 实现长轮询

1. 安装 icomet git地址:https://github.com/ideawu/icomet 编译: wget --no-check-certificate https://github...

基于jquery,php实现AJAX长轮询(LongPoll)

HTTP是无状态、单向的协议,用户只能够通过客服端向服务器发送请求并由服务器处理发回一个响应。若要实现聊天室、WEBQQ、在线客服、邮箱等这些即时通讯的应用,就要用到“ 服务器推送技术(Comet)”...

基于AJAX的长轮询(long-polling)方式实现COMET例子

什么是 Comet? 解释: Alex Russell ( Dojo Toolkit 的项目 Lead )称这种基于 HTTP 长连接、无须在浏览器端安装插件的 “ 服务器推 ” 技术为 “Come...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:gevent中如何实现长轮询
举报原因:
原因补充:

(最多只允许输入30个字)