Skip to content

实时通信

本文介绍 youlai-django 在后台管理场景下的 WebSocket 通知实现,用于与 Vue3 Element Admin 联调。

整体架构

连接与认证

  • Django 使用 Channels 4
  • 连接地址:
text
ws://<host>/ws/notice?token=<accessToken>
  • 后端在 connect 阶段解析 query token,解码并识别当前用户

通知发布与推送

发布通知后,后端通过 Channel Layer 广播事件;前端收到后可刷新“我的通知”列表、更新红点、弹出提醒。

启用要点

  • requirements.txt 需要包含 channels
  • 使用 ASGI 方式运行(如 daphneuvicorn
  • settings 配置 ASGI_APPLICATIONCHANNEL_LAYERS
  • config/asgi.py 使用 ProtocolTypeRouter 同时支持 HTTP 与 WebSocket

更多实现细节见现有 Python WebSocket 文档与代码。

基于 MIT 许可发布