我需要在Django建立一个推送系统,basicly其功能是从服务器的邮件推送到浏览器。
由于可以的NodeJS不能使用,我更喜欢的WebSocket或绕行,但我不知道如何实现在Django任何这两个。 请推荐一种方法对我来说,这将帮助我很多,THX。
我需要在Django建立一个推送系统,basicly其功能是从服务器的邮件推送到浏览器。
由于可以的NodeJS不能使用,我更喜欢的WebSocket或绕行,但我不知道如何实现在Django任何这两个。 请推荐一种方法对我来说,这将帮助我很多,THX。
Django是不擅长“推”的东西给客户端。 如果Django是你唯一的选择,模仿推唯一方法是通过长轮询。 但是,这是没有效率的。 取而代之的,是的WebSockets热。 龙卷风和扭曲可以帮助你在这里。 还有一个更完整的回答你的问题在这里 。
一种选择是使用的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的商业产品)工作。
在Django的WebSockets的另一种实现: https://github.com/jonashagstedt/swampdragon
从文档:SwampDragon利用Django的精彩ORM,龙卷风优秀的WebSocket支持(回退在IE7测试。),和Redis的惊人的速度的。
截至2016年,有Django的渠道 ,这使WebSockets向Django的(1.8及更高版本)。
这也是官方的Django项目的一部分 。
有一个Django模块,它支持的WebSockets出使用Redis的作为消息队列的方块。 看看这里: https://github.com/jrief/django-websocket-redis
免责声明:我是该库的作者。
作为@hymloth建议,更好的办法是使用龙卷风或node.js中
但是,如果你要使用Django,我已经写了有关实现的WebSocket它,你可能会发现有用的文章。
http://curella.org/blog/2012/jul/17/django-push-using-server-sent-events-and-websocket/
Django的一切
内部使用龙卷风和有蟒蛇3支持。