0

django channels is working on both my local server and in the development server in my production environment; however, I cannot get it to respond in production nor can I get it to work with the following Daphne command (dojos is the project name):

daphne -b 0.0.0.0 -p 8001  dojos.asgi:channel_layer

Here is sample of what happens after the command:

2019-05-08 08:17:18,463 INFO     Starting server at tcp:port=8001:interface=0.0.0.0, channel layer dojos.asgi:channel_layer.
2019-05-08 08:17:18,464 INFO     HTTP/2 support not enabled (install the http2 and tls Twisted extras)
2019-05-08 08:17:18,464 INFO     Using busy-loop synchronous mode on channel layer
2019-05-08 08:17:18,464 INFO     Listening on endpoint tcp:port=8001:interface=0.0.0.0
127.0.0.1:57186 - - [08/May/2019:08:17:40] "WSCONNECTING /chat/stream/" - -
127.0.0.1:57186 - - [08/May/2019:08:17:44] "WSDISCONNECT /chat/stream/" - -
127.0.0.1:57190 - - [08/May/2019:08:17:46] "WSCONNECTING /chat/stream/" - -
127.0.0.1:57190 - - [08/May/2019:08:17:50] "WSDISCONNECT /chat/stream/" - -
127.0.0.1:57192 - - [08/May/2019:08:17:52] "WSCONNECTING /chat/stream/" - -

(forever)

Meanwhile on the client side I get the following console info:

websocketbridge.js:121 WebSocket connection to 'wss://www.joinourstory.com/chat/stream/' failed: WebSocket is closed before the connection is established.
Disconnected from chat socket

I have a feeling that the problem is with nginx configuration, so here is my config file server block:

location /chat/stream/ {
    proxy_pass http://0.0.0.0:8001;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $http_host;
}


location /static/ {
    root /home/adam/LOCdojos;
}

I made sure that the consumers.py file had this line:

def ws_connect(message):
    message.reply_channel.send(dict(accept=True))

I tried installing django debug toolbar w/ the channels panel per question: Debugging django-channels

but it did not help in the production environment.

I am stuck - what is the next step?

Adam S.
  • 306
  • 2
  • 11

1 Answers1

0

I am also stuck with this kind of problem, but this:

proxy_pass http://0.0.0.0:8001;

looks really weird for me - is it works that way? Maybe:

proxy_pass http://127.0.0.1:8001;