如果我使用 django 开发一个聊天应用程序,它会有一些性能问题吗?我可以在 django 中进行服务器推送吗?我也想进行 PM 和房间讨论。
6 回答
我在 Pypi 和 Github 上发布了一个 Django 应用程序,它提供了一个多用户网络聊天。它基于 Gevent:在多线程环境中运行良好,但在运行超过 1 个 worker 的 gunicorn 等预先分叉的环境中效果不佳。我只是在写文档。回购是:https ://github.com/qubird/django-chatrooms
使用龙卷风怎么样?我尝试了 Tornado 的演示聊天应用程序。而且 Tornado 声称比 django 有更好的性能。
让我知道你的想法。
grono.net有聊天和 PM(虽然没有房间)并且是建立在 django 上的。性能相当不错,所以我相信你应该能够达到同样的性能。这取决于您期望的连接数量。grono.net 相当大,它使用一些缓存和服务器分发来表现良好。但这一切在 Django 上都是可行的。
基本上 Django 并不是最好的方法。
但是,如果您真的坚持使用它并且不想使用太多解决方案或/并且想要保持简单,您可以尝试使用它:
http://popcnt.org/2008/01/django-evserver-asynchronous-server-for.html
Whih 是异步 django 服务器。
我认为对于聊天应用程序,您可以使用其他技术,例如 AMQP(RabbitMQ 等)、Comet 等。但是,对于开发用户配置文件、PM 等,您可以使用 Django。
不要忘记性能仍然取决于服务器配置(Web 服务器软件、缓存、数据库)
Twisted也值得一试。我认为您描述了他们的教程场景。