当前位置: 首页 > news >正文

daphne:为 Django Channels 打造的 ASGI 协议服务器

文章目录

  • daphne:为 Django Channels 打造的 ASGI 协议服务器
    • 1、这工具是干什么的
    • 2、为什么需要它
    • 3、怎么用
    • 4、HTTP/2 支持
    • 5、Python 版本要求
    • 6、适合谁用

daphne:为 Django Channels 打造的 ASGI 协议服务器

daphne 在 GitHub 上已经拿到 2,669 Star。

Django 团队开发了这套 HTTP、HTTP2 和 WebSocket 协议服务器,专门给 Django Channels 提供底层支持。

1、这工具是干什么的

就一件事:把 ASGI 应用跑起来。

它能自动协商协议类型,不需要给 WebSocket 端点加 URL 前缀,也不用在代码里区分请求走哪个协议。一个服务同时处理 HTTP 请求和 WebSocket 连接。

2、为什么需要它

Django Channels 引入了 ASGI 规范,让 Django 能够处理 WebSocket 等异步协议。但规范需要一个服务器来实现,daphne 就是这个角色。

在 daphne 出现之前,Django 应用只能跑 WSGI,处理不了长连接和实时通信。daphne 补上了这块,让开发者可以用同一套框架同时处理 HTTP 请求和 WebSocket 连接。

3、怎么用

安装后直接指向 ASGI 应用:

daphne-b0.0.0.0-p8001django_project.asgi:application

默认绑定 localhost:8000。如果跑在反向代理后面,可以用 UNIX Socket:

daphne-u/tmp/daphne.sock django_project.asgi:application

在进程管理器里可以用文件描述符传递:

daphne--fd5django_project.asgi:application

需要更灵活的端口控制,可以用 Twisted endpoint 语法:

daphne-essl:443:privateKey=key.pem:certKey=crt.pem django_project.asgi:application

全部参数可以用-h查看。

4、HTTP/2 支持

daphne 原生支持 HTTP/2 终止。需要安装 Twisted 的 http2 和 tls 扩展:

pipinstall-U"Twisted[tls,http2]"

由于浏览器只支持基于 TLS 的 HTTP/2,需要启用 SSL。系统要求 OpenSSL 1.0.2 以上。

启动后可以在日志中看到 “HTTP/2 support enabled” 提示。HTTP/2 在浏览器开发者工具里看不出明显区别,可以用浏览器扩展确认是否生效。

目前只支持普通请求,还没有 Server Push。但连接速度和开销已有明显改善。

5、Python 版本要求

daphne 需要 Python 3.9 或更高版本。

6、适合谁用

  • 在用 Django Channels 做 WebSocket 或实时通信的开发者
  • 从 WSGI 迁移到 ASGI 的 Django 项目
  • 需要 HTTP/2 支持的 Python Web 服务

daphne 是 Django Channels 生态的核心组件,由 Django 团队维护。问题和特性建议可以提交 Issue。

Web 服务

daphne 是 Django Channels 生态的核心组件,由 Django 团队维护。问题和特性建议可以提交 Issue。

http://www.gsyq.cn/news/1639200.html

相关文章:

  • openEuler/btfhub未来路线图:支持更多架构与内核版本的扩展计划
  • Ceph云原生存储开发:openeuler/ceph_dev中CSI驱动实现原理
  • Buck 降压电路电感全套计算实例总结(12V 转 5V/1MHz)
  • 老项目做 vibe coding 改造,别先开写:先把边界、契约和验收跑通
  • sbom-tools实战案例:在openEuler生态中的成功应用指南
  • awesome-rust:Rust 生态的完整索引
  • 计算机Java毕设实战-农家乐民宿客房预订与餐饮消费管理系统的设计与实现 智慧乡村山庄休闲服务管理平台【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • N_m3u8DL-RE:跨平台流媒体下载工具
  • 【2026最新】Dev C++ 6.5下载保姆级安装图文教程(全网最详细)【附安装包+C++编译器】
  • 05_子代理
  • Windows平台Nmap从入门到实战:网络扫描与安全审计指南
  • 2026年最新好用英语单词软件推荐 帮你稳步提升日常英语水平
  • 2026图片去水印方法:手机电脑免费工具与在线网站、PS教程
  • OpenCV 4.8 图像处理实战:用代码复现3种经典视觉错觉(附对比图)
  • 易信easyMarkets观察:服务响应、风控提示和使用秩序的综合参考
  • 第二章:从零到一,构建经典电机控制逻辑
  • 我们在焦虑什么
  • 2007-2025年中国省、市5A级旅游景区数据
  • [Android] 多开空间-一机多账号+应用一键克隆双开
  • 011-费曼学习法的四步框架
  • macos支持的数字人角色库软件?5款数字人口播实测横评
  • CARLA 0.9.16 与 ROS 2 Foxy 桥接:3个关键步骤实现自动驾驶算法闭环测试
  • Java社工密码生成器部署与实战:从环境配置到高命中字典生成
  • AI赋能识别之围栏破损识别 围栏缺陷检测数据集 栅栏破损识别数据集围栏孔洞识别植被入侵检测图像数据集YOLO模型如何训练 目标检测图像数据集第10125期
  • 基于Python与OpenCV的围棋棋盘定位:从颜色特征到轮廓提取的实战解析
  • 如何挑选最适合你的乡墅赋能培训课程?
  • Robot Framework面试指南:从基础到高级的29道核心问题解析
  • 使用OpenSSL生成本地证书https+nginx
  • 【小白也能轻松玩转龙虾】虾壳云一键部署 OpenClaw v2.7.9,离线本地 AI 搭建教学(附最新安装包)
  • HarmonyOS宠物邻里实战第5篇:通知中心、已读同步与AppStorage刷新闭环