使用Redis作为数据存储的Django Websocket支持
项目描述
项目主页: https://github.com/jrief/django-websocket-redis
详细的文档可以在[ReadTheDocs](http://django-websocket-redis.readthedocs.org/en/latest/)上找到。
在线演示: http://django-websocket-redis.awesto.com/
使用Redis作为消息队列的Django Websockets
此模块在Django之上实现了Websocket,无需任何额外框架。对于消息传递,它使用[Redis](https://redis.ac.cn/)数据存储,在生产环境中,它旨在在[uWSGI](http://projects.unbit.it/uwsgi/)和[NGiNX](http://nginx.com/)或Apache 2.4.5或更高版本之后运行。
功能
适用于具有数百个打开Websocket连接的Django应用的广泛可扩展性。
使用[gevent](http://www.gevent.org/)在合作并发模型中运行独立的Django主循环,因此只需要一个线程/进程就可以同时控制所有打开的WebSocket。
在开发期间可以完全控制这个独立的主循环,因此可以使用./manage.py runserver像往常一样启动Django。
无需依赖任何其他异步事件驱动框架,例如Tornado、Twisted或Socket.io/Node.js。
正常的Django请求通过Redis与这个独立的主循环通信,顺便说一句,Redis是memcached的良好替代品。
可选地持久化消息,允许服务器重启和客户端重连。
如果不确定这个提出的架构是否是正确地将WebSocket与Django集成的做法,请阅读Roberto De Ioris(uWSGI的BDFL)关于[卸载WebSocket和服务器发送事件(SSE),也称为“安全地将它们与Django结合”](http://uwsgi-docs.readthedocs.org/en/latest/articles/OffloadingWebsocketsAndSSE.html)的文章。
请考虑,无论您使用哪种替代技术,您始终需要一个消息队列,这样Django应用程序就可以“与”浏览器“交谈”。这是因为浏览器和服务器之间的唯一联系是通过WebSocket,因此,根据定义,这是一个长期连接。出于可扩展性的原因,您不能为这些连接中的每一个启动一个Django服务器线程。
版本历史
请参阅[changelog.rst](docs/changelog.rst)
构建状态
[ [
问题
请使用问题跟踪器来提问。
许可证
版权 © 2015 Jacob Rief。
MIT许可。
项目详情
django-websocket-redis-0.6.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | cda77d9b87110f9482a7056a0bc5cef179feaea4313394faa5b291d777b426b9 |
|
MD5 | 7676e1ea0bd55994a643af68ec8def71 |
|
BLAKE2b-256 | 4d06a6de22f0e4e4c926be881b45d97b8a4abe47393705ae64a008afbf7236da |