与asgi兼容的http/2web服务器

thruster的Python项目详细描述


推进器

刚刚工作的http/2服务器

这是我试图用python编写一个功能齐全的htp2.0服务器。这是一项正在进行的工作。 服务器支持asgi 1.0规范。不依赖于hyper/h2(除了hpack)和twisted包。 http/2堆栈完全是从头开始实现的。 依赖于bitstring来处理用于http/2协议实现的二进制数据。

http/2(当前状态)

  • 大多数http/2帧的实现已经完成。其余框架的实现将在用例出现时完成。
  • 所有帧都按类组织,以帧类为父级。
  • 支持ASGi 1.0。即将添加对2.0的支持。
  • 流量控制(待添加)
  • 流优先级(待添加)
  • 与Django合作(根据Django 1.11和2.2进行测试)

用法

使用pip安装软件包

  • PIP3安装推进器

运行以下命令:

  • 推进器—应用程序路径到您的应用程序—证书文件路径到证书文件—密钥文件路径到密钥文件
  • 例如:推进器——app mysite——cert file server_cert.crt——密钥文件服务器_key.key

--证书文件应为.crt文件,-密钥文件应为.key文件。如果没有传递--cert file和--key file选项,推进器将在当前目录中查找server.crt和server.key。 --证书文件和--key文件是ssl连接所必需的,http2只适用于ssl。您可以使用--help了解更多选项。 如果一切顺利,你应该在终端上看到以下输出。

在端口8000上提供HTTP…

asgi应用程序的结构应该是这样的。例如:如果你用的是django。

根目录/ Asgi.py公司 路由.py settings.py

asgi.py

importosimportdjangofromchannels.routingimportget_default_applicationos.environ.setdefault("DJANGO_SETTINGS_MODULE","mysite.settings")django.setup()application=get_default_application()

routing.py

fromchannels.routingimportProtocolTypeRouterapplication=ProtocolTypeRouter({})

settings.py

ASGI_APPLICATION='mysite.routing.application'

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
安卓 studio中无法识别java setAdapter   javajmagick。用于64位处理器的dll   java如何将项目附加到ArrayList?   java在扑克中随机发5张牌   JAVA中数据类型的sql转换   java从安卓应用程序为Cortex M3架构生成ARM thumb2汇编代码   用于XSS预防的java ESAPI不起作用   java如何将web方法jar转换为osgi包   java如何创建获取4个数字并返回最大数字的max方法?   如何用java和html发送数据   java如何避免以1Ex格式存储双值?   java如何为未配置web的web应用指定显示名称。xml   java Phidget RFID未连接(ANDROID和Phidget)   运行时的java部分JSON序列化(用于RESTful查询)   java获取错误:“;”预期   java笛卡尔积inRxJava   selenium中加载的所有页面的java getPageSource   java如何使用从其他子项目中选择的类作为Gradle中的测试依赖项