外观
WebSocket
使用说明
主界面
WebSocket实现依赖Django Channels和Uvicorn。
- Django Channels 是 Django 框架的扩展库,用于支持异步通信和WebSocket 协议,解决了传统 Django 仅支持 HTTP 同步请求的局限性。它允许 Django 处理更复杂的交互场景,如实时聊天、通知推送、数据流更新等,使 Web 应用具备 “双向通信” 能力。
- Uvicorn 是一个高性能的 ASGI(Asynchronous Server Gateway Interface)服务器,用于构建和运行 Python 异步 Web 应用程序。它基于 asyncio 库实现异步 I/O 操作,支持 HTTP 和 WebSocket 协议。
开启WebSocket功能
使用 Uvicorn 运行 Django 项目:进入项目根目录(包含manage.py的目录),运行下面命令
sh
# 开发环境中启动 Uvicorn
uvicorn mysite.asgi:application --reload
# 或
uvicorn mysite.asgi:application --host 0.0.0.0 --port 8000 --reload
开启后,能看到连接状态为OPEN
TIP
不要同时使用python manage.py runserver
和uvicorn mysite.asgi:application --reload
命令运行Django项目。
聊天功能
- 在消息输入框输入发送内容,选择接收人并发送。
- 接收人登录平台,并进入WebSocket界面,能实时收到消息。
后端实现
目录
代码目录:mysite\myapp_infra\websocket
sh
websocket
|-- consumers.py # 聊天功能
`-- routing.py # WebSocket 路由配置
Django Channels 配置
Django Channels 相关配置
- 文件
mysite\mysite\settings.py
:INSTALLED_APPS
中已添加channels
- 文件
mysite\mysite\asgi.py
TIP
Django Channels依赖Redis服务
前端实现
目录
代码目录:src\views\infra\webSocket