I use nginx as reverse proxy for daphne to use django channels.
Here's my nginx.conf
server {
listen 80;
server_name <ip_addr>;
location / {
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_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $server_name;
}
}
in daphne's log:
2017-07-17 08:45:35,011 DEBUG WebSocket daphne.response.xxx open and established
2017-07-17 08:45:35,011 DEBUG WebSocket daphne.response.xxx accepted by application
but WebSocket's connect in client side doesn't receive any message
Can you help me?
UPDATE:
client-side code (I use Starscream library for WebSocket connection in Swift):
socket = WebSocket(url: URL(string: "ws://site/proxy?token="+token!)!)
func websocketDidConnect(socket: WebSocket) {
print("websocket is connected")
}
socket.connect()
routing.py:
channel_routing = [
route("websocket.receive", 'project.consumers.ws_message'),
route("websocket.connect", 'project.consumers.ws_connect'),
]
consumers.py:
@rest_token_user
def ws_connect(message):
message.reply_channel.send({"accept": True})
res_user from: https://gist.github.com/leonardoo/9574251b3c7eefccd84fc38905110ce4