使用wsgi来自tornado的无缓冲输出

时间:2013-02-12 05:22:56

标签: streaming tornado wsgi

我创建了小型django项目来提供音乐。一切都在经历django,甚至是流媒体部分(项目非常小,最多2-3个用户)。

我现在想让项目自成一体,所以我使用龙卷风作为网络服务器。我使用的东西如下:

os.environ['DJANGO_SETTINGS_MODULE'] = 'project.settings'
wsgi_app = tornado.wsgi.WSGIContainer(
    django.core.handlers.wsgi.WSGIHandler())

tornado_app = tornado.web.Application([
    (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': STATIC_DIR}),
    (r'.*', tornado.web.FallbackHandler, dict(fallback=wsgi_app)),
])
server = tornado.httpserver.HTTPServer(tornado_app)                                                                                                      
server.listen(8888)
tornado.ioloop.IOLoop.instance().start()

龙卷风虽然似乎缓冲输出,因此无法播放流媒体音乐。有没有办法改变这种行为?或者是否有另一个python中的web服务器可以同时提供wsgi应用程序和静态文件?

编辑:经过一些研究,我得出结论,问题最可能在于WSGIContainer。似乎在the definition of WSGIContainer中,响应被读入缓冲区然后写入客户端。因此,有没有更好的方法来实现它,而不是根据原始版本滚动自己的WSGIContainer

1 个答案:

答案 0 :(得分:0)

this issue来看,龙卷风似乎不适合我需要的服务器。我可能会使用开箱即用的CherryPy。