gpt4 book ai didi

django-websocket-redis 开发服务器不工作

转载 作者:可可西里 更新时间:2023-11-01 11:30:23 25 4
gpt4 key购买 nike

我正在开发一个 Django 应用程序,它使用 django-websocket-redis 应用程序从服务器端发布事件。

我已经使用 nginxuWSGI 成功配置了一个测试服务器,将 HTTP 和 WS 请求正确路由到我的 Django 应用程序,但是在我的本地开发环境中我不能让这个工作。

根据 django-websocket-redis documentation ,启动 Django 开发服务器就足够了,一切都应该正常工作,但这似乎与现实相去甚远。

这是我检查过的:

  • redis 正在 localhost:6379 上运行并响应 PING 请求
  • 尝试在不同的端口(80、8080、8000)上运行服务器以检查 django-websocket-redis 是否对开发服务器的端口做出任何假设,但没有任何改变
  • 在网上搜索了解决方案,但没有关于这个主题的内容

在客户端的本地环境中,当我的应用程序尝试连接到本地 WebSocket 时,我看到了 404 错误。我的 settings.pyWEBSOCKET_URL 设置为正确的 URL(在测试服务器上它工作,但在本地不工作)。

有人知道我做错了什么吗?谢谢!

最佳答案

我已经找到了一个解决方法。

我已将我的 wsgi.py 修改为此,它现在可以工作了:

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "myapp.settings")

# This application object is used by any WSGI server configured to use this
# file. This includes Django's development server, if the WSGI_APPLICATION
# setting points here.

from django.core.wsgi import get_wsgi_application
from django.conf import settings
from ws4redis.django_runserver import WebsocketRunServer


if settings.DEBUG:
_django_app = get_wsgi_application()
_websocket_app = WebsocketRunServer()

def application(environ, start_response):
if environ.get('PATH_INFO').startswith(settings.WEBSOCKET_URL):
return _websocket_app(environ, start_response)
return _django_app(environ, start_response)
else:
application = get_wsgi_application()

更新:不需要像我之前提到的那样创建自定义管理命令,所以我删除了那部分答案。

关于django-websocket-redis 开发服务器不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41291206/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com