请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

ws 请求报错 想不原因 求助

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请求

0 回复 有任何疑惑可以回复我~
  • 提问者 李嘉图principal #1
    WebSocket连接没有成功,但是uwsgi 拉动起来的django能正常返回数据,就是ws://xxxxxx/ws/xxx  这种请求 nginx不知道如何处理,但是nginx已经按照文档中的配置了   location  /ws/ {xxxxxxx}  也在对应的端口启动了dephne服务,但好像就是路由不过来
    回复 有任何疑惑可以回复我~ 2019-12-04 00:18:01
  • 提问者 李嘉图principal #2
    主要是 runserver 运行是没有问题的,ws能正常运行,但是用uwsgi+nginx部署,http部分和静态资源都没问题,就是ws不行了........
    回复 有任何疑惑可以回复我~ 2019-12-04 23:24:01
  • Jack 回复 提问者 李嘉图principal #3
    nginx error日志有报错吗?就是说nginx转发了/ws/到daphne,问题出在daphne对吗?
    回复 有任何疑惑可以回复我~ 2019-12-06 09:14:20
Jack 2019-12-06 09:20:42

那像是部署除了问题。你可以这样分步来,别用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 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信