3

daphne が django チャネルを使用するためのリバース プロキシとして nginx を使用します。

ここに私の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;
                }
        }

ダフネのログ:

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

しかし、クライアント側でのWebSocketの接続はメッセージを受け取りません

手伝って頂けますか?

アップデート:

クライアント側のコード (私は Swift で WebSocket 接続に Starscream ライブラリを使用しています):

socket = WebSocket(url: URL(string: "ws://site/proxy?token="+token!)!)

func websocketDidConnect(socket: WebSocket) {
        print("websocket is connected")
}

socket.connect()

ルーティング.py:

channel_routing = [
    route("websocket.receive", 'project.consumers.ws_message'),
    route("websocket.connect", 'project.consumers.ws_connect'),
]

消費者.py:

@rest_token_user
def ws_connect(message):
    message.reply_channel.send({"accept": True})

res_user から: https://gist.github.com/leonardoo/9574251b3c7eefccd84fc38905110ce4

4

0 に答える 0