使用daphne部署django channles websocket 项目

Posted chenjianwen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用daphne部署django channles websocket 项目相关的知识,希望对你有一定的参考价值。

前言:最近写了一个项目,有部分功能使用django channles websocket写的,使用的链接是wss:// 或者 ws:// ,到真实在uwsgi+nginx部署时,发现wss:// 或者 ws://不可用了,后来查了比较多时间,尝试过修改nginx配置文件,尝试过修改uwsgi配置文件,尝试过使用gunicorn部署,都没有解决此问题。最终发现需要多启用一个进程daphne,使用daphne启动django channles websocket对应功能进程,问题得到解决。

1.增加代码:在setting.py同级目录下增加文件

  vim asgi.py

import os
import django
from channels.routing import get_default_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "boamp.settings")
django.setup()
application = get_default_application()

2.setting.py内添加配置:

ASGI_APPLICATION = webssh.routing.application

3.安装必要模块:

启动前安装必须模块:
/opt/python36/bin/pip3 asgiref==2.3.2
/opt/python36/bin/pip3 pyOpenSSL==19.1.0    #启用ssl必须模块
/opt/python36/bin/pip3 service-identity==18.1.0

4.启动方式:

/opt/python36/bin/daphne -b 0.0.0.0 -p 8913 boamp.asgi:application -v2  #http协议 channles websocket 使用ws://
/opt/python36/bin/daphne -e ssl:8913:privateKey=/etc/nginx/ssl/证书.key:certKey=/etc/nginx/ssl/证书.crt boamp.asgi:application -v2  #https协议 channles websocket 使用wss://

 

以上是关于使用daphne部署django channles websocket 项目的主要内容,如果未能解决你的问题,请参考以下文章

使用 nginx、django、daphne 部署到 docker

使用 nginx 和 daphne 部署 django、channels 和 websockets

使用 Apache2 和 Daphne 部署 django-channels

使用 SSL 使用 Daphne + NGINX 部署 Django 通道

使用 Daphne 和 Nginx 部署 django 频道的问题

Django 频道 daphne 返回 200 状态码