我试图将django频道配置为在我的ubuntu服务器(数字海洋)上运行。
我在port 6379
上运行了redis-server。
Daphne正在使用unix:/home/mysite/sockets/mysite.sock
收听端点HTTP/2 support enabled
(不确定此阶段是否需要)
我也有一个./manage.py runworker
听力。
我的daphne run命令是
daphne -u /home/mysite/sockets/mysite.sock project.asgi:channel_layer
我的http请求来自(在daphne日志中),就像他们在我的本地环境中所做的那样
#local
127.0.0.1:62241 - - [09/Oct/2017:21:03:41] "GET /playground/channel-simple" 200 1826
#server (side note. not sure why port + host are eliminated here.?)
None - - [09/Oct/2017:21:53:51] "GET /playground/channel-simple" 200 1622
但是,当我通过js请求websocket url时,一切都会崩溃......
#local
127.0.0.1:62268 - - [09/Oct/2017:21:03:43] "WSCONNECTING /chat/private-room/" - -
127.0.0.1:62268 - - [09/Oct/2017:21:03:43] "WSCONNECT /chat/private-room/" - -
#server
None - - [09/Oct/2017:21:54:04] "GET /chat/private-room/" 404 86
看起来它将请求视为http请求而不是websocket连接?这也是js控制台日志...
#server - js response to connection
WebSocket connection to 'ws://[MY-IP]/chat/private-room/' failed: Error during WebSocket handshake: Unexpected response code: 404
有人可以建议这个404可能被解雇的地方吗?或任何有关调试的提示。
感谢。
答案 0 :(得分:2)
我已经在这里找到了问题,现在已按预期在服务器上运行了。我还没有完成nginx配置。 Noob:)。
以下文章非常有用。
https://www.nginx.com/blog/websocket-nginx/
http://masnun.rocks/2016/11/02/deploying-django-channels-using-daphne/