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

Django项目单独运行ASGI与WSGI后WebSocket连接失败原因排查

WebSocket连接失败的核心原因
  • WebSocket连接的建立必须经过HTTP握手环节:客户端发起ws连接时,先发送一个带Upgrade: websocket头部的HTTP请求,请求协议升级。如果你的ASGI应用的ProtocolTypeRouter里完全没有配置"http"类型的处理逻辑,Daphne收到这个握手请求后找不到对应的处理程序,会直接拒绝请求,导致WebSocket连接失败。
  • 哪怕你不想让ASGI服务处理普通HTTP业务请求,也不能完全去掉"http"对应的配置——至少需要让它能处理WebSocket的握手请求。你可以配置一个极简的HTTP处理函数,或者保留get_asgi_application()但通过URL路由规则限制仅处理WebSocket相关的握手请求,而把普通HTTP请求完全交给Gunicorn的WSGI服务处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 08:40:53