2016-12-22 54 views
0

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

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

根据django-websocket-redisdocumentation,它足以启动Django开发服务器,一切都应该正常工作,但它似乎离现实很远。

以下是我已经检查:

  • Redis的是在localhost:6379运行,并应对PING请求
  • 试图运行在不同的端口(80,8080,8000)的服务器,以检查是否在django-websocket-redis使有关开发服务器的端口的任何假设,但
  • 搜索解决方案网上没有什么变化,但并没有什么关于这个话题

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

任何人有一个想法我做错了什么?谢谢!

回答

0

我找到了解决方法。

我修改我的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() 

UPDATE:这是没有必要的,因为我前面提到的创建一个自定义管理命令,所以我已经删除的部分答案。

相关问题