我已经创建了一个小的django项目来服务于音乐。所有的东西都要经过django,甚至包括流媒体部分(这个项目非常小,最多2-3个用户)。
我现在想使项目自包含,所以我使用tornado作为want服务器。我正在使用类似于以下内容的内容:
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()然而,Tornado似乎缓冲了输出,因此流媒体音乐是不可能的。有什么方法可以改变这种行为吗?或者,在python中有没有另一个and服务器可以同时为wsgi应用程序和静态文件提供服务?
编辑:经过一些研究,我得出结论,问题很可能出在WSGIContainer上。似乎在the definition of WSGIContainer中,响应被读入缓冲区,然后写入客户端。那么,有没有更好的方法来代替我自己的WSGIContainer基于原始版本呢?
发布于 2013-02-13 06:34:35
从this issue来看,tornado似乎不是我所需要的服务器。我可能会使用开箱即用的CherryPy。
https://stackoverflow.com/questions/14825933
复制相似问题