加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 从Django发送websocket请求

发布时间:2020-12-20 13:37:52 所属栏目:Python 来源:网络整理
导读:这是我的交易: 我有一个用autobahn websocket编写的websocket pubsub服务器(基于twisted). 我有简单的网站连接到服务器并订阅了一个频道 在此旁边,我有一个简单的Django项目和一个应用程序 最后我打开了终端与curl get请求,点击我的Django应用程序 在请求表
这是我的交易:

>我有一个用autobahn websocket编写的websocket pubsub服务器(基于twisted).
>我有简单的网站连接到服务器并订阅了一个频道
>在此旁边,我有一个简单的Django项目和一个应用程序
>最后我打开了终端与curl get请求,点击我的Django应用程序

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

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

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

ws4py不支持频道

谢谢你的建议.伟大的将是一个例子.

解决方法

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

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

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读