【发布时间】:2011-05-05 18:48:56
【问题描述】:
我正在尝试编写我的第一个龙卷风应用程序。
tornado 的示例,显示了以下代码,但似乎一旦“MainHandler”函数返回,客户端与此服务器之间的连接将丢失。
我希望服务器在数据可用时持续推送数据。
如何保持管道畅通?
在客户端,我正在考虑进行 ajax 调用。这行得通吗?
我以为一旦收到数据,ajax 调用就结束了。
Facebook 确实说客户端使用龙卷风与服务器保持一个线程打开,因此我知道可以做到,我想我在这里为一些简单的概念而苦苦挣扎..
import tornado.ioloop
import tornado.web
import time
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("What happens after this call ?")
# while(True): time.sleep(5) <push more data># This would be ugly.. plus blocking(correct ?)
application = tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
我的理解中缺少什么?
【问题讨论】:
标签: python comet nonblocking tornado