【推荐】介绍tornado实现comet的文章

博客地址:

http://qinxuye.me/article/ways-to-continual-sync-browser-and-server/

http://www.josephj.com/entry.php?id=358

 

总结:

  使用长连接实现“服务器推"可以归为两种方式, 客户端轮询和服务端轮询,  

        客户端轮询,指每次客户端请求到数据后,连接关闭,客户端再重建链接。

    服务端轮询,指客户端和服务端建立连接后,连接不关闭,服务端通过tornado的flush函数,增量返回数据,返回数据后,服务端通过定时器,继续调用获取数据的接口。

  传统的轮询

    客户端定时向服务器发起请求,得到响应后,关闭链接。 响应中可能有数据,也可能没有。

  基于长连接的轮询

    无论是在客户端轮询数据还是在服务端轮询数据,都是在发现有数据更新后,才返回。

疑问:

  服务端非阻塞时,获取更新数据时,如果可以阻塞在远程调用上,那客户端轮询的例子就比较好理解,但假设服务端只是去查数据库中有无最新的消息,如果没查到,按照文中的说法,

      服务端只是需要注册定时器,继续轮询数据,拿到数据后,再通知客户端关闭链接,这样客户端和服务端等于是都在轮询的。

 

posted @ 2015-10-08 12:04  JinleiZhang  阅读(89)  评论(0)    收藏  举报