2016-12-22 7 views
0

私はサーバー側からイベントを公開するためにdjango-websocket-redisアプリを使用しているDjangoアプリケーションに取り組んでいます。django-websocket-redis開発サーバーが動作しない

nginxuWSGIを使用してテストサーバーを正しく設定して、HTTPリクエストとWSリクエストをDjangoアプリケーションに正しくルーティングしましたが、私のローカル開発環境では動作しません。

django-websocket-redisdocumentationによれば、Django開発サーバーを起動すれば十分ですが、すべて正常に動作するはずですが、これは現実とはかなり離れているようです。

  • のRedisは
  • がいるかどうかを確認するために異なるポート(80、8080、8000)でサーバを実行しようとしたlocalhost:6379上で実行されているとPINGの要求に応答している。ここで

    は、私がチェックしたものですdjango-websocket-redisは、開発サーバーのポートについての仮定を作るが、何もオンラインソリューションを探しますが、このトピック
については何もない
  • を変更しません

    私のアプリケーションがローカルWebSocketに接続しようとすると、クライアント側のローカル環境で404エラーが表示されます。私のsettings.pyは正しいURLにWEBSOCKET_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:私は前に述べたので、私はその部分を削除したとして、カスタム管理コマンドを作成するために必要ではないです答え。

    関連する問題