从 Django 发送 websocket 请求



这是我的交易:

  • 我有一个用python编写的websocket pubsub服务器,带有autobahn websocket(基于扭曲)。
  • 我有连接到服务器并订阅了一个频道的简单网站
  • 在此旁边,我有一个简单的Django项目和一个应用程序
  • 最后,我打开了带有 curl get 请求的终端,该请求命中了我的 Django 应用程序

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

我试图在 4 天内弄清楚这一点。我已经用 twisted.reacotr 写信给 autobahn pubsub 客户端,但我只能发送一次消息(在我停止反应堆完成 django 请求后,我无法再次启动它,因为它不可重新启动)。

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

WS4py 不支持频道

感谢您的任何建议。伟大的将是一个例子。

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

下面是一个示例,展示了如何将 Flask/WSGI 与高速公路配合使用。Django也可以在WSGI容器中运行。

此外,也可以使用上述方法从基于Django/WSGI/Twisted的服务器运行基于Autobahn的WebSocket客户端。

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

相关内容

  • 没有找到相关文章

最新更新