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

Django Channels教程实现WebSocket时出现404错误求助

解决Django Channels WebSocket 404错误

核心问题

你的WebSocket路由规则写法错误,导致无法匹配请求的/ws/chat/lobby/地址,从而返回404。

具体修复步骤

1. 修正routing.py的路由规则

re_path需要使用正则表达式语法,而非path的占位符格式。将原代码修改为:

from django.urls import re_path

from .consumers import ChatConsumer

websocket_urlpatterns = [
    re_path(r'^ws/chat/(?P<room_name>[^/]+)/$', ChatConsumer.as_asgi()),
]
  • r'^ws/chat/(?P<room_name>[^/]+)/$':正则表达式确保匹配以/ws/chat/开头、以斜杠结尾的地址,(?P<room_name>[^/]+)会捕获任意不含斜杠的字符串作为room_name参数,和前端请求的地址完全对应。

2. 检查asgi.py的导入路径

确认你的app名称是小写的chat(Django惯例),将import Chat.routing修改为:

import chat.routing

如果你的app确实命名为Chat(大写),则保持原导入,但建议遵循Django小写命名规范。

3. 重启开发服务器

修改路由配置后,需要重启runserver才能生效:

python manage.py runserver

验证修复

重新进入聊天页面,点击发送按钮,终端不再出现404错误,WebSocket连接即可正常建立。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 07:55:31