4

我不想使用 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)工作。

4

0 回答 0