问题标签 [daphne]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
755 浏览

django - 如何使用 https 和 mkcert 在 localhost 中运行 daphne

我正在尝试使用 https 在本地运行 django-channels 项目(该应用程序有一个需要 https 的 facebook 登录)。

我已按照使用 mkcert ( https://github.com/FiloSottile/mkcert )生成密钥和证书的说明进行操作,并尝试通过运行来使用密钥和证书daphne -e ssl:443:privateKey=localhost+1-key.pem:certKey=localhost+1.pem django_project.asgi:application -p 8000 -b 0.0.0.0

服务器似乎启动正常,但是当我尝试访问https://0.0.0.0:8000时没有任何反应,最终我收到“响应时间太长”的消息。

启动服务器时出现的标准 daphne 输出中没有添加新输出:

有人能帮忙吗?

0 投票
1 回答
1683 浏览

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

我在尝试打开网站时收到 502 错误。我使用了官方网站 链接中的说明

在/etc/supervisor/conf.d/添加了新文件 lifeline.conf

生命线配置文件

设置 nginx 配置

我检查了 asgi 日志文件,它包含一个错误。

我猜在lifeline.conf中有一个错误。

0 投票
1 回答
5260 浏览

django - 将 django 设置传输到环境变量

我使用.bashrc根文件夹中的文件在本地 ubuntu mashine 和 AWS Ubuntu 服务器上设置 django 项目设置并为环境变量添加值。

设置.py

在本地一切正常,但在生产服务器值未导入。为什么它不能在两台机器上工作?如何设置生产?

我使用 asgi 服务器 daphne 运行生产服务器,因此本 教程

更新

asgi.py

0 投票
1 回答
1288 浏览

django - 尝试启动 Daphne systemctl 进程时权限被拒绝

我正在使用 Django 和 Django-Channels 部署一个网站,其中 Channel 的daphneASGI 服务器代替了典型的 Gunicorn WSGI 设置。使用此 Gunicorn WSGI 教程作为入门指南,当我遇到以下错误时,我尝试为我的 daphne 服务器编写一个 systemctl 服务:

CRITICAL Listen failure: [Errno 13] Permission denied: '27646' -> b'/run/daphne.sock.lock'

不幸的是,我找不到任何答案来解释为什么.sock文件的权限会被拒绝(在 Daphne 的上下文中),所以我希望我能得到一些关于从哪里开始调试这个问题的提示。以下是我daphne.socket和我的daphne.service文件。

达芙妮服务

达芙妮.socket

根据链接的 DigitalOcean 教程,我使用sudo systemctl start daphne.socket.

我的猜测是,我错过了为 Gunicorn 和 Daphne 设置 systemctl 服务之间存在某种差异,但我不确定。

(如果有帮助,我打算使用 Nginx 作为主服务器,但我还没有达到那个地步)

编辑:

如果我还附上 systemd 给出的完整输出,这将有所帮助:

0 投票
1 回答
4985 浏览

django - How to run wsgi along the side of the daphne ASGI for django channels

i am using django channels in my project using using official django channels v2, my simple channels app is completed and working fine if run python manage.py runserver but i want to run django channels in different port so i am now using daphne
using daphne my_project.asgi:application --port 8001 it working fine in 8001 port

and i also run python manage.py runserver in another terminal parallely working fine. now my both channels in 8001 and django in 8000 port working correctly but my runserver command running ASGI/Channels instead of wsgi development server,

instead of

settings.py

if i debug any function in views.py request, it is ASGI request instead of django wsgi request

my question is:

  1. how to get django request instead of ASGI request in our normal function view request(like def index(request)) or if we install django channels every request become ASGI request?
  2. what is the use of the python mange.py runworker command
0 投票
0 回答
2434 浏览

ssl - 带有 Django Channels 和 Daphne webserver 的 wss(安全 websocket)

我试图弄清楚如何设置 Django Channels,以便它通过 wss:// 方案接受我的 websocket 连接。

对于 ws:// 一切正常。我在客户端使用 websockets 包来建立与服务器的连接(将 Channels 作为 ASGI 服务器运行)。但是当我切换到 wss:// 并开始运行客户端时,然后...... 60 秒内没有任何反应,之后我收到一条错误消息,指出:“SSL 握手时间超过 60.0 秒:中止连接”

我的 Daphne 服务器在标准端口 8000 的 localhost 上运行。

我知道 HTTP 和 HTTPS 以及 TCP 和 TLS 应该在不同的端口上运行,但由于我没有在 Django Channels readthedocs 网站上找到任何提示,我认为它可能只是奇迹般地处理这两者而无需任何配置。我想我错了?

客户端连接是这样建立的:

on_open() 和 on_message() 方法分别处理套接字的打开和解析传入的消息。

现在,我实际上也希望能够在服务器端(使用 Channels)设置 SSL 上下文,但是经过数小时的在线研究后,我还没有找到一个示例。我宁愿只看到将 nginx 配置为侦听端口 443 并指向必要证书的示例。

我认为 Daphne 是一个生产就绪的服务器,可以同时处理 HTTP(s) 和 WebSocket(ws 和 wss)请求。我需要 Nginx 做什么?

这似乎是一个愚蠢的问题,但我很高兴在这里得到任何帮助。

0 投票
1 回答
2968 浏览

django - 启动 django 服务器时,我不断收到 NotImplementedError 错误

下面是错误的完整跟踪。请让我知道什么可以解决这个问题:

0 投票
1 回答
654 浏览

heroku - 达芙妮拒绝所有远程请求

我有一个项目,我使用频道并且在本地一切运行良好,但是当我在 Heroku 上部署时,每次尝试连接时都会得到 403。起初我认为问题出在 Heroku 上,因为我在本地对其进行了测试,甚至在本地使用了 Heroku 的数据库和 redis 实例,一切正常。

但是,当我使用ngrok打开到我的本地主机的公共隧道时,我发现结果与 Heroku 中的相同。对于每个请求,我都会得到 403 并尝试调试它并没有多大帮助,因为事件循环有时会突然控制或出现超时错误。设置与一个在本地访问而另一个在远程访问的设置完全相同。这就是我开始达芙妮的方式: daphne weout.asgi:application --port 8000 --bind 0.0.0.0 -v 3.

我的库版本:

  • Django==2.0.7
  • 频道==2.2.0
  • 通道-redis==2.4.0
  • 达芙妮==2.3.0

将 Daphne 的 versbosity 设置为最大值,这是我尝试连接时得到的结果:

我使用 Daphne 为我的普通 Django 视图和 websocket 消费者提供服务。一切都适用于 Django 视图,因此仅在连接到消费者时才会出现问题

有没有人在远程访问 Dapnhe 时遇到类似的问题?起初我尝试将 uvicorn 与 gunicorn 一起使用,但是当消费者在初始连接阶段关闭时它们会出现错误,所以我切换回 Daphne

0 投票
1 回答
1035 浏览

python - 使用 celery 和 websocket 在 Azure 应用服务上部署 Python Django 应用

我正在尝试将我的Django 应用程序从 Heroku 移动到 Azure 应用程序服务。

该应用程序由 Websocket 和 Rest API 组成。

因此,应用程序的 Web 部分在daphne Web 服务器上运行,worker 部分在celery上运行。

在 Heroku 中,我的 Procfile 看起来像

当我在 Azure 应用程序服务上尝试相同的操作时,他们提供了一个启动命令来在构建后启动服务器。

我有 web 和 worker 命令来运行服务器。我尝试使用 sh 文件来执行 Web 和 worker 命令。但它不会工作

所以以下是我面临的问题

  1. Daphne 服务器命令在 azure 中不起作用,但是当我将其更改为 gunicorn 时它可以工作 [但不支持 WebSocket :( 使用 gunicorn ]
  2. 另外,我不知道如何在 azure app 服务中运行 web 和 worker,因为它们只有一个启动命令选项

欢迎任何帮助或指导

提前致谢.....

0 投票
1 回答
1311 浏览

django - django 频道 vs daphene

我对 django-channels 和 uvicorn 服务器的主要角色有点困惑。我已经阅读了很多博客,但没有得到太多澄清。

如果我们可以使用通道为 websockets 实现 ASGI 服务器,那么为什么我们需要像 daphene 或 uvicorn 那样单独的 asgi 服务器?