首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >django-websocket-redis开发服务器不工作

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

Stack Overflow用户
提问于 2016-12-22 20:29:33
回答 1查看 227关注 0票数 0

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

我已经成功地配置了一个使用nginxuWSGI的测试服务器来正确地将HTTP请求路由到我的Django应用程序,但是在我的本地开发环境中,我无法做到这一点。

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

这是我查过的:

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

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

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-22 22:39:20

我找到了解决办法。

我已经修改了我的wsgi.py,它现在起作用了:

代码语言:javascript
复制
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()

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41291206

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档