Django的实时web应用替代方案

7 投票
3 回答
7504 浏览
提问于 2025-04-17 14:10

我过去一年一直在用Django开发一个网页服务器应用。我的技术组合是Django + Apache + MySql,这个组合非常符合我们的需求。最近,我们需要一些实时功能,并且有机会对服务器应用进行大量的修改或重写。让我惊讶的是,Django在这方面并不是最好的选择。

我阅读了很多资料(比如推送、WebSockets、gunicorn等等…… http://curella.org/blog/django-push-using-server-sent-events-and-websocket/),但我还没能决定是继续用Django,还是换成一个更适合这个工作的新技术组合。继续用Django感觉有点不太自然。有没有经验丰富的开发者能给我一些建议?

所以,基本问题是:对于构建一个实时网页应用,我现在的技术组合还有哪些替代方案?

谢谢

PS:我不是以英语为母语的人。:)

编辑:这些替代方案需要支持安全连接。

编辑2:我们开发的网页应用是游戏。

3 个回答

1

如果你想做实时的网页应用,我建议你使用WebSocket。WebSocket可以很安全,而且响应速度非常快,因为一旦连接建立后,通信就没有额外的负担了。如果你对Python很熟悉,可以用Python的Twisted来搭建服务器,客户端可以用Python和/或JavaScript,使用Autobahn。顺便说一下,这里有一个非常棒的Twisted教程。

2

你需要根据自己的目标来权衡决策。

你想要一个产品

那么就用你最熟悉的编程语言来写代码,只有在你有了产品并发现它有局限性时,才考虑换工具。

你想学习新东西

可以尝试新的编程语言或框架,但这可能会花费更多时间来制作产品,而且你可能会发现新工具并没有比旧工具更好。

两者兼顾

可以尝试同时启动两个项目,在每个项目中用不同的工具构建相同的东西。虽然这样会花更多时间,但你应该能很快看出哪个工具更适合你的任务。

替代方案

我不太明白你说的django“不自然”是什么意思。Django可以进行服务器和客户端的通信——只需使用一些AJAX与django服务器进行交互,然后调用其他Python库来处理请求。Django的Python替代品包括很棒的flaskweb.py,不过这两个工具也需要你自己编程才能实现客户端和服务器之间的通信(就像django一样)。如果你不想用Python,可以试试ruby on rails。在客户端,你需要了解一些JavaScript,所以去学习一下吧(coffescriptjQuery可以让JS变得简单一些,但还是先学JavaScript)。

当然,你也可以选择使用node.js作为服务器基础,听说它相当不错(我还没试过)——而且是用JS写的。

编辑:
根据你的评论,仔细看看

同时注意到这个问题可能是一个重复问题

2

可以看看这些网站:http://www.tornadoweb.org/http://www.mongodb.org/https://github.com/bitly/asyncmongohttp://socket.io/。我觉得用这些工具来创建实时应用程序是个不错的主意。

撰写回答