我创建了小型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
?