python - 从 Django 发送 websocket 请求

标签 python django websocket

这是我的交易:

  • 我有一个用 python 编写的 websocket pubsub 服务器,带有 autobahn websocket(基于 twisted)。
  • 我有一个连接到服务器并订阅了一个 channel 的简单网站
  • 除此之外,我还有一个简单的 Django 项目和一个应用
  • 最后,我打开了带有 curl get 请求的终端,该请求命中了我的 Django 应用

在请求表单 curl 命中我的 django 应用程序和我的 View 后,我需要将消息发送到服务器到我的网站订阅的 channel 。基本上我需要可以将消息发送到特定 channel 并可以在 django View 中运行的 websocket 客户端(没有无限阻塞循环)。

我已尝试在 4 天内解决这个问题。我已经写信给带有 twisted.reacotr 的高速公路 pubsub 客户端,但我只能发送一次消息(在我停止 reactor 完成 django 请求后我无法再次启动它,因为它不可重新启动)。

我也尝试过 djagno-socketio,但是有,所以当我尝试从 django View 发送消息时,我看不到客户端。

ws4py 不支持 channel

感谢您的任何建议。很好的例子。

最佳答案

您应该能够在一台服务器中运行 Django 和 Autobahn:

这是一个 example展示了如何在 Autobahn 中使用 Flask/WSGI。并且 Django 可以在 WSGI 容器中运行 as well .

还应该可以使用上述方法从基于 Django/WSGI/Twisted 的服务器运行基于 Autobahn 的 WebSocket 客户端。

要点是:Twisted 可以充当 WSGI 容器,然后将在后台工作线程池上运行 WSGI Web 应用程序(可以阻塞)。这将允许您使用 Twisted 的异步功能,例如运行 Autobahn - 客户端或服务器。因此,您可能还会重新考虑整体架构:为什么要将 Autobahn 服务器作为一个不同的进程来运行?

关于python - 从 Django 发送 websocket 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19458657/

相关文章:

python - 属性错误 : function 'initGEOS_r' not found

html - Django:<ul> 在字段的帮助文本中

java - 如何在没有主服务器的情况下编写用于 p2p 文件共享的 Web 应用程序?

javascript - Websocket 自定义服务器不适用于 firefox,但适用于 Chrome

javascript - 握手期间 ASP.NET Core WebSocket 失败

python - CSV 模块的作者不让我写出二进制文件

python - 连接图像矩阵中的图像

python - 锯齿 tkinter 主循环帧持续时间?

python - 抓取 https ://www. thenewboston.com/时出现 "SSL: certificate_verify_failed"错误

python - django 有没有办法在每个页面中包含一些模块