ws 请求报错 想不原因 求助

来源:12-15 Nginx uWSGI Daphne Supervisor Django生产环境部署

李嘉图principal

2019-12-01

dephne服务正常启动了 如图图片描述
nginx 也配置了,没有报错 如图
图片描述
但是前端访问就找不到 ws路径
图片描述
在本地测试没有问题,用服务器部署才出这个错,实在找不出问题

写回答

2回答

Jack

2019-12-03

用户登录了吗?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请求

0
4
李嘉图principal
非常感谢!
2020-09-10
共4条回复

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报了啥

0
0

Django高级实战 开发企业级问答网站

融合Django高级用法/算法/设计模式/TestCase测试/云计算打造项目

900 学习 · 756 问题

查看课程