我不想使用 tornado/node.js/twisted 并且想将 gunicorn WSGI 服务器与 gevent worker 一起使用:)。我想保持这种轻量级,不想添加更多服务。
我有一个 django 应用程序,其堆栈是 redis、RQ 和 gunicorn(工人是 gevent)。我想使用 websockets 来实现推送。我想按原样使用该应用程序,直到收到“/websocket”的请求,在这种情况下我想使用 websockets。
我想做的是通过以下方式在烧瓶中完成:
def my_app(environ, start_response):
path = environ["PATH_INFO"]
if path == "/":
return app(environ, start_response)
elif path == "/websocket":
handle_websocket(environ["wsgi.websocket"])
else:
return app(environ, start_response)
我如何在 django 中做到这一点?这是我的wsgi.py:
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "dapi.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
为了做这样的事情,我是否必须覆盖WSGIHandler()
?我会很感激一个例子。我想让基础 http 服务器(运行通过python manage runserver
)工作。