如何建立在Django推式系统中?(How to build a push system in dj

2019-06-25 07:18发布

我需要在Django建立一个推送系统,basicly其功能是从服务器的邮件推送到浏览器。

由于可以的NodeJS不能使用,我更喜欢的WebSocket或绕行,但我不知道如何实现在Django任何这两个。 请推荐一种方法对我来说,这将帮助我很多,THX。

Answer 1:

Django是不擅长“推”的东西给客户端。 如果Django是你唯一的选择,模仿推唯一方法是通过长轮询。 但是,这是没有效率的。 取而代之的,是的WebSockets热。 龙卷风和扭曲可以帮助你在这里。 还有一个更完整的回答你的问题在这里 。



Answer 2:

一种选择是使用的WebSocket服务器上运行平行于具有REST /推式API Django的服务器,然后通过简单的HTTP /张贴到网页套接字服务器,这反过来将消息传递到所有连接的WebSocket客户做推动从Django中。

这样,你不需要任何结构/技术更改现有的Django应用程序,不过有一个可扩展的,现代的WebSocket基于推送功能。

对于托管服务提供上述,我想看看http://pusher.com 。

如果你更喜欢运行你自己的,我想看看http://autobahn.ws ,它被部署为一个随时可以运行虚拟设备(VMware的,VirtualBox的,亚马逊EC2)。 你可以在这里找到REST / API的工作实例https://github.com/tavendo/AutobahnPushPython

免责声明:我是高速公路开源的作者,并为Tavendo,提供Autobahn.ws(基于高速公路OSS的商业产品)工作。



Answer 3:

在Django的WebSockets的另一种实现: https://github.com/jonashagstedt/swampdragon

从文档:SwampDragon利用Django的精彩ORM,龙卷风优秀的WebSocket支持(回退在IE7测试。),和Redis的惊人的速度的。



Answer 4:

截至2016年,有Django的渠道 ,这使WebSockets向Django的(1.8及更高版本)。

这也是官方的Django项目的一部分 。



Answer 5:

有一个Django模块,它支持的WebSockets出使用Redis的作为消息队列的方块。 看看这里: https://github.com/jrief/django-websocket-redis

免责声明:我是该库的作者。



Answer 6:

作为@hymloth建议,更好的办法是使用龙卷风或node.js中

但是,如果你要使用Django,我已经写了有关实现的WebSocket它,你可能会发现有用的文章。

http://curella.org/blog/2012/jul/17/django-push-using-server-sent-events-and-websocket/



Answer 7:

Django的一切

内部使用龙卷风和有蟒蛇3支持。



文章来源: How to build a push system in django?