问题标签 [django-channels]

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 回答
1929 浏览

django - 使用 Django 通道的静态文件服务问题

我正在尝试使用 Django 中的 websockets 示例,https://github.com/jacobian/channels-example,因为我打算将它用于我的生产应用程序,它也托管在 Heroku 中,并在那里使用 Whitenoise。因此,在克隆了上述示例之后,我使用 Whitenoise 进行了一些调整,但现在通过任何浏览器(chrome 或 FF)首次访问应用程序时,静态文件不会加载,当我再次刷新时它会加载静态文件,并且在第三次加载时,它再次熄灭,依此类推。这是我的设置文件:

这是我对 routing.py 进行更改的另一个文件:

过程文件是:

我现在还没有在 Heroku 上尝试过,只是在 localhost 上我观察到了这种行为,所以甚至没有将解决方案与原始应用程序集成。我使用 heroku local 在本地运行应用程序。

我究竟做错了什么?Procfile 生产中提到的过程是否已在 Heroku 上准备好?

谢谢

0 投票
2 回答
1927 浏览

python - 如何在不刷新的情况下显示从服务器推送到网页的更新?

我使用 Django 1.10 作为我们构建的仓储应用程序的后端。

我正在添加另一个新功能,其中一个网页将显示在一个巨大的显示器上。这个网页除了 1 个巨大的数字外什么都不会显示。

我有一个 RFID 设备,一旦检测到 RFID 标签,就会向我的 Django 服务器发送一个 http 请求。

发生这种情况时,我希望 RFID 标签中的数字显示在前面提到的网页上。

我已经简要地阅读了有关 socket.io 的内容,但我想尽可能地保留在 Django 世界中。我也简要了解了 Django Channels。

我的问题是:

  1. 我应该在这个用例中使用 Django Channels 吗?
  2. 如果是这样,我该如何使用上面的用例来做到这一点?
0 投票
1 回答
1037 浏览

python - Django没有对象匹配给定的查询,但它应该

我有以下问题我的数据库不是空的并且有我需要的记录。但是当我查询数据库时,它说没有与给定查询匹配的对象。我使用 django-channels 从 websocket 中查询数据库,我的数据库是 postgreSQL。

我知道还有其他关于此的问题,我调查了它们,但它们都是关于空数据库或错误的 url slug 这不是我的情况,对我没有任何帮助

下面是对应的代码:

我注意到的另一件事是 print(username) 不打印任何内容,它只是跳过了这一行。我在不同的函数中使用了 message.user.username,所以我确信它应该返回用户名

追溯:

0 投票
3 回答
1106 浏览

python - 是否可以在不使用操作系统调用的情况下在 python 脚本中启动 Daphne

是否可以从 python 脚本运行 daphne 进程甚至只是 Django 通道?

推荐的方法是运行

我想知道我是否可以将它绑定到一个变量并以 Tornado 的方式运行它

0 投票
1 回答
29 浏览

python - “MyConsumer”没有属性“clients_connected”`

我正在尝试按照本教程创建消费者

https://channels.readthedocs.io/en/stable/generics.html

我在标题中遇到错误,但我已经在构造函数中明确定义了它。disconnect从方法调用错误

0 投票
0 回答
3565 浏览

python - 如何通过 django 频道发送心跳/ping 1

我们有Django Channels与 Daphne 和 redis 一起运行。在我们运行django-websocket-redis之前,它支持开箱即用的心跳(ping)消息。我们的客户端代码依赖于这个心跳来确认一个活跃的连接,但是在 django 中我们并不关心它是否仍然活跃。

因此,我们不需要跟踪服务器端的所有内容,但我们确实需要发送心跳。

如何使用通道或 daphne 发送心跳 / ping 消息?我找不到关于此的任何文档。

使用 django-websocket-redis 的旧实现只是"--heartbeat--"每 n 秒发送一个 websocket 消息。文档参考

我读过 Daphne 发送 ping,但我没有看到它们出现在任何地方,我的 websocket 连接保持打开状态。

0 投票
2 回答
543 浏览

django - Django Channels 消息生命周期

我有一些(可能是大量的)JSON 数据需要推送到 Django 频道。数据所需的生命周期非常短(2-3 秒就足够了)。我使用 Redis 作为后端。

什么是默认消息生命周期?是否可以指定消息的生命周期?

0 投票
1 回答
2720 浏览

python - Django channels for asynchronous periodic tasks

I found that most of the docs regarding Django Channels are about WebSockets. But I want to use them in a different way, and I believe it is possible.

How to run the async periodic task using Django channels? For example, I want to check the temperature on some website (through the API) every 15 seconds and I need a notification when its hit > 20.

It also means that this task will live for a long time (maybe even for 3 month), is Django capable of keeping the consumers live for a long time?

Thank you.

0 投票
2 回答
420 浏览

python - Django Channels WebSocketConsumers 是无状态的吗

我正在尝试使用 Django 通道创建一个对象,该对象对于连接到套接字的每个人都保持持久性/

当我尝试创建一个在多次receive()运行之间保持持久性的对象时,它会引发NoneType异常

0 投票
1 回答
875 浏览

django - Django 频道 + Elastic Beanstalk

我已经设置了一个应用程序负载均衡器,它将/ws/请求重定向到端口 5000,在那里我让 Daphne 和 4 个工作人员一起运行(通过 Supervisord 重新加载)。但是,在 Chrome 控制台中,我得到了错误

WebSocket connection to 'wss://api.example.com/ws/' failed: WebSocket is closed before the connection is established.

当尝试通过简单的 JavaScript 代码连接到我的 WebSocket 时(请参阅Multichat以了解非常接近的内容)。有任何想法吗?

路由.py

设置.py

Supervisord.conf

达芙妮.out.log

工人.out.log

失败前运行的 JavaScript 代码

显然,daphne/worker 日志中没有相关输出,这意味着连接可能一开始就没有正确路由。