ws 请求报错 想不原因 求助
来源:12-15 Nginx uWSGI Daphne Supervisor Django生产环境部署
李嘉图principal
2019-12-01
dephne服务正常启动了 如图
nginx 也配置了,没有报错 如图
但是前端访问就找不到 ws路径
在本地测试没有问题,用服务器部署才出这个错,实在找不出问题
2回答
-
用户登录了吗?http web正常吗?
可以按照以下这个思路来:
第一步
WebSocket连接是否成功,检查请求头、响应头、状态码
1.前端WebSocket API使用错误,未正确发送连接,常见的连接地址写错,JS语法错误,未正确引用Reconnecting-websocket.js文件
2.onsumers.py中接收WebSocket连接代码错误,检查connect方法,或者routing.py中路由是否匹配
第二步
是否能接收到WebSocket消息,使用chrome浏览器,选中WS,点击建立的连接,看Frames,用其它浏览器和其它用户登录,触发消息通知,看是否有数据
1.模型类或视图中调用get_channle_layers的时候,payloay有没有传递给consumers.py中对应的方法(WebSocket连接对应的Consuemr类)
2.consumers.py中self.send()方法,数据发送给前端时出错
3.前端WebSocket API中onmessage方法,没有正确解析event.data,可以使用console.log()测试
第三步
Frames能看到WebSocket消息,就是没通知提示
到这一步,就只剩js对html标签操作的错误了。对于点赞数和评论数的更新,看下update_social_activity函数是否发送了post请求
042020-09-10 -
Jack
2019-12-06
那像是部署除了问题。你可以这样分步来,别用supervisor去启daphne和uwsgi,用命令启动daphne
/usr/local/python3/bin/daphne -p 8000 config.asgi:application
和uwsgi
/usr/local/python3/bin/uwsgi --ini /etc/uwsgi.ini
nginx还是正常启动和配置。注意debug=False,启动elasticsearch,redis。这时候你前端访问并登陆,看命令行启动的daphne报了啥
00
相似问题