Django channels layer 使用redis在windows环境下报错问题的解决

项目场景:

Django Channels的channels-layer配置redis遇到连接问题:

Django Channels 配置了channels-layer为redis,用以实现群聊。在MacOS开发环境下一切正常,部署到服务器上后客户端始终连接不到ws服务。


问题描述

websocket连接刚刚连上就断开

前端控制台显示,连接成功,秒断,显示连接错误:
反复尝试均不能正常连接。
windows的django、django-channels、channels-redis均重新安装
依旧不能保持正常连接。
重启,redis服务正常。
依旧不能保持正常连接。


原因分析:

结论:windows安装的redis版本太低

先后更改了channels-layer配置下的ip,试了外网访问ip、localhost、局域网ip、主机域名均不能正常连接。客户端返回的提示信息是,刚刚连接上,即断开了连接。在consumers里增加了多个位置的print。后来发现确实是卡在了channels-layer配置这里。

from channels.generic.websocket import AsyncJsonWebsocketConsumer
from channels.exceptions import StopConsumer


class GroupConsumer(AsyncJsonWebsocketConsumer):

    def __init__(self, *args
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值