问题标签 [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 投票
2 回答
1504 浏览

django - Django Channels/Daphne 内部服务器错误“'dict' 对象不可调用”

我在连接到我的网站时收到此错误,因为它正在运行频道。

我不知道从哪里开始解码错误。频道服务器设法以此开始

0 投票
2 回答
1850 浏览

python - 代码更新后 Django + Daphne 热重载

我正在运行一个由 Daphne 和 Nginx 作为反向代理服务的 Django restserver 应用程序。我还有一个定期的 cron 作业,将更新的代码从我的 git 拉到服务器。

我无法找到一种方法来进行热重载并重新生成 pyc 文件,就像它在 Django 开发服务器中所做的那样。有什么好的方法可以解决这个问题吗?

不想为此重新启动我的整个服务器。

0 投票
0 回答
1085 浏览

python - 如何在 Windows 上正确部署 django 频道?

我需要在 Windows 服务器上使用 WebSockets 设计一个基于 Django 的项目。似乎 Django Channels 是做这种事情的最优雅和最 Pythonic 的方式。但是,我无法找到在 Windows 上部署 Channels 和/或 Daphne 的正确方法。建议使用进程管理器,但到目前为止我发现的所有解决方案都在 Linux 环境中。

在 Windows 上部署 Daphne 的最正确方法是什么?如何将其实际设置为可以扩展到多个线程/进程并侦听同一端口的 Windows 服务。现在该项目(没有 WebSockets)部署在处理此类问题的 Apache 上。在达芙妮的情况下,我不知道如何让它以这种方式工作。或者也许我应该使用 Daphne 以外的其他东西在 Windows 上部署 Channels?

编辑:我在 Python 3.6 上使用最新版本的 Channels 2.0.2、Django 1.10。

0 投票
1 回答
244 浏览

django - 如何让 nginx 从不同的端口提供 django admin css 文件

所以我知道有人问过这个问题,但我不确定我的初始设置是否正确。

我运行 nginx 来提供我的 angular 5 文件。我让 daphne 运行来为我的频道和 django 代码提供服务。但我不确定如何从 django admin 获取我的静态文件。

nginx 正在侦听端口 80 和端口 8080 上的 daphne。所以要获得我的管理员,我可以访问http://whatever:8080/admin。管理界面在那里,但它不加载 css 文件。

如何更改我的 nginx 以使其从另一个端口加载静态文件?

这是我的 nginx-conf 的样子

我确定最后一行是不对的,甚至是最后一个位置块。

有任何想法吗?

0 投票
0 回答
587 浏览

python - Daphne 和 Systemd:将文件描述符传递给子进程

我正在尝试daphne使用多处理运行 2.1。在文档中我有:

如果要将多个 Daphne 实例绑定到机器上的同一端口,请使用可以侦听端口并将文件描述符传递给启动的进程的进程管理器,然后使用 --fd NUM 传递文件描述符。

我尝试使用套接字(dapnhe.socket):

并提供服务 ( daphne@.service)

%i形式%d-%d-%d。我只是-在将其传递给daphne.

这不起作用...任何人都知道如何将 FD 传递给daphne

0 投票
0 回答
120 浏览

django - 会议 Django:达芙妮 + Uwgsi

我目前正在使用通道 2.x 部署一个 django 项目,uwgsi 用于 http 请求,daphne 用于后台任务。

Daphne 本身和 uwgsi 一样正常运行。

两者的配置如下:

所有后台工作人员都以/stream 开头。所有端点都受到保护。当登录并访问/api/v1/resource等端点时,它会正确返回数据,但是当通过/stream触发任务时,我的权限被拒绝(403)。调试这种行为我得出的结论是会话在 Daphne 和 Uwsgi 之间没有持久化。

我怎样才能实现他们之间共享的会话?

0 投票
0 回答
360 浏览

amazon-web-services - AWS - WebSockets 未通过 HTTPS 连接

我在 aws elastic beanstalk 上部署了 django Web 应用程序,并且我也在其中一部分使用 websockets,我已经安装了应用程序负载均衡器,它应该默认支持 websockets

https://aws.amazon.com/elasticloadbalancing/details/

但是在建立连接时(仅在 HTTPS 中)我收到了这个

WebSocket 在连接建立之前关闭

HTTP没有问题,它工作得很好

这是负载均衡器配置

在此处输入图像描述 在此处输入图像描述

这是我在 js 中的连接方式

  • 端口 5000 是 daphne 运行我的 django 应用程序的地方

和我的 apache 配置

和 ssl_config

0 投票
0 回答
78 浏览

django - Debian Nginx 监听但不工作

我在 Debian 上为 Django 设置 Nginx 时遇到了很多麻烦。

我可能尝试了我可以在互联网上找到的每个 nginx django conf 文件,但没有一个有效,我想我看不到树木的福雷斯特......

所以我正在运行 Django 2.0.4 和 daphne 2.1.1。

对于达芙妮,我使用这个命令:

这是我的 Nginx Conf 文件,我添加了一个指向 google 的重定向,所以我实际上可以看到它正在运行:

跑步netstat -nlp | grep 80

另外,/etc/init.d/nginx status说 Nginx 正在运行。

Sites-available 和 sites-enabled 都是链接的。

我错过了什么?有人有想法或需要更多信息吗?

0 投票
2 回答
5657 浏览

python - 为什么 Django Channels Daphne 不能使用多线程并发处理请求?

我知道 Python 的 GIL 并且 Python 中的线程并不像在 Go 中生成一个 go 例程那么容易。然而,在我看来,Ruby 能够与 Puma 和 Unicorn 一起实现多线程并发。我的问题实际上是双重的。我的经验仅限于 Django Channel 的 Daphne。

  1. 除了 Daphne,Rails 中的 puma 和 unicorn 等多线程的 Web 服务器还有哪些选择?

  2. 从 Daphne 的文档中,我了解到并行性是通过产生新进程(工人)来实现的

    因为运行消费者的工作与与 HTTP、WebSocket 和其他客户端连接的通信工作是解耦的,所以您需要运行一个“工作服务器”集群来完成所有处理。每台服务器都是单线程的,因此建议您在每台机器上的每个内核上运行一个或两个左右;在同一台机器上运行尽可能多的并发工作人员是安全的,因为他们不打开任何端口(他们所做的只是与通道后端交谈)。

如前所述,每个工作人员都是单线程的。当涉及到 I/O 函数调用时,worker 完全被阻塞了。我的问题是,为什么 Daphne 不能为每个请求生成多个线程。当一个线程被 I/O 阻塞时,例如数据库访问,CPU 切换到执行另一个线程,直到前一个线程被解除阻塞。同样,Node.js 是单线程的,但它通过非阻塞 I/O 很好地实现了并发性。为什么很难实现同样的壮举。在 Python 中?(除了它缺乏良好的事件循环之外。)

0 投票
1 回答
6575 浏览

django - 在 nginx 后面使用 Daphne

我有一个 Django 应用程序,它使用 uWSGI 和 Nginx 进行生产部署。现在我正在集成 Channels 2.0 并意识到 Daphne 是这里 uwsgi 的替代品。我可以让 Daphne 在独立模式下运行它,但是当我尝试在 nginx 代理后面运行它时,我不断收到连接超时(504)

我的 nginx 配置文件是我为 uWSGI 服务器配置的,我希望它能够正常工作,因为套接字名称是相同的。

可能的问题

  • 从 nginx 日志中的样子来看,nginx 尝试连接到,uwsgi://unix:///path/to/nginx.sock但我认为它不uwsgi应该以unix:///path/to/nginx.sock.

后续问题

  • 是否建议同时使用 Daphne 来服务器 http 和 websocket?或者我应该将 uWSGI 用于 http,而 Daphne 仅用于 websocket。
  • 如果两者都使用 Daphne,我是否正确保留相同的 uwsgi_params 文件?

设置.py

asgi.py

nginx.conf

达芙妮服务器日志

Nginx 日志