【推荐】介绍tornado实现comet的文章
博客地址:
http://qinxuye.me/article/ways-to-continual-sync-browser-and-server/
http://www.josephj.com/entry.php?id=358
总结:
使用长连接实现“服务器推"可以归为两种方式, 客户端轮询和服务端轮询,
客户端轮询,指每次客户端请求到数据后,连接关闭,客户端再重建链接。
服务端轮询,指客户端和服务端建立连接后,连接不关闭,服务端通过tornado的flush函数,增量返回数据,返回数据后,服务端通过定时器,继续调用获取数据的接口。
传统的轮询
客户端定时向服务器发起请求,得到响应后,关闭链接。 响应中可能有数据,也可能没有。
基于长连接的轮询
无论是在客户端轮询数据还是在服务端轮询数据,都是在发现有数据更新后,才返回。
疑问:
服务端非阻塞时,获取更新数据时,如果可以阻塞在远程调用上,那客户端轮询的例子就比较好理解,但假设服务端只是去查数据库中有无最新的消息,如果没查到,按照文中的说法,
服务端只是需要注册定时器,继续轮询数据,拿到数据后,再通知客户端关闭链接,这样客户端和服务端等于是都在轮询的。

浙公网安备 33010602011771号