You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

独立Django项目中出现其他项目的Django Channels broken pipe错误如何解决

问题原因

你遇到的重复404报错大概率不是ASGI项目后台进程残留导致的,核心原因是之前打开过Channels项目的浏览器标签页未关闭,页面内的WebSocket自动重连逻辑每隔30秒向同端口的服务发起连接请求,现在旧项目运行在8000端口,这些请求就全部打到了旧项目上。

解决步骤

  • 优先排查浏览器标签页:找到之前访问过Channels项目聊天页面的标签直接关闭,或对对应页面执行硬刷新(Ctrl+F5/Command+Shift+R),90%以上的情况执行完这一步报错就会消失。
  • 若关闭浏览器后仍有报错,排查占用8000端口的残留进程:
    • macOS/Linux 执行命令:
    sudo lsof -i:8000
    # 拿到对应进程PID后执行
    kill -9 <替换为查到的PID>
    
    • Windows 执行命令:
    netstat -ano | findstr :8000
    # 拿到对应进程PID后执行
    taskkill /PID <替换为查到的PID> /F
    
  • 排查所有Python相关的Channels/Django进程:
    ps aux | grep -E "daphne|runserver|channels" | grep -v grep
    # 把查询到的所有相关进程全部kill即可
    

验证技巧

你可以先把旧项目切换到其他端口启动,执行./manage.py runserver 8001,如果新端口下没有出现/ws路径的404报错,即可100%确认是前端页面的重连请求导致的问题,和后台进程无关。

内容的提问来源于stack exchange,提问作者Dylan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 19:54:03