7

去年我一直在用 Django 开发一个 Web 服务器应用程序。堆栈是 Django + Apache + MySql。这个堆栈非常适合我们的需求。最近出现了对一些实时功能的需求以及在服务器应用程序中更改/重写很多东西的机会。令我惊讶的是,Django 并不是这里的最佳选择。

我读了很多书(推送、WebSockets、gunicorn ......很多东西...... http://curella.org/blog/django-push-using-server-sent-events-and-websocket/)但我还没有决定是否要使用 Django,或者是否应该使用更适合该工作的新软件堆栈。使用 Django 似乎有点不自然。任何有经验的开发人员可以指出我正确的方向吗?

因此,基本问题是:对于构建实时 Web 应用程序的当前软件堆栈,有哪些替代方案?

谢谢

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

编辑:替代方案需要允许安全连接。

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

4

3 回答 3

2

查看http://www.tornadoweb.org/ + http://www.mongodb.org/ + https://github.com/bitly/asyncmongo + http://socket.io/ 我认为这是个好主意使用它来创建实时应用程序。

于 2013-01-30T11:26:10.480 回答
2

你需要权衡你的决定和你的目标。

你想要一个产品

然后用你最熟悉的语言框架编写代码,只有当你有一个产品并且它有限制时才考虑切换工具。

你想学习新的东西

尝试新的语言、框架——但生产产品可能需要更长的时间,你可能会发现新工具并不比旧工具好。

一半一半

尝试启动两个项目,并在每个项目中构建相同的东西,只使用另一个工具。这将花费更长的时间,但您应该能够很快看到您喜欢/最适合您的任务的工具。

备择方案

我不太确定 django 的意思是“不自然”。Django 可以进行服务器/客户端通信 - 只需使用一些 AJAX 与 django 服务器对话,然后调用另一个 pythonic 库来处理请求。django 的 Python 替代品包括出色的flaskweb.py,但除非您也对它们进行编程(如 django),否则它们都不会进行客户端/服务器通信。如果你不喜欢 python,你可以试试ruby​​ on rails。对于客户端,你需要了解一些关于JavaScript的知识,所以去学习一下(咖啡脚本jQuery可以缓解 JS 的痛苦,但首先要学习 JavaScript)。

当然,你可以硬着头皮用node.js作为服务器基础,显然它非常好(我还没有尝试过)——并且是用 JS 编写的。

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

还注意到这个问题是一个潜在的重复

于 2013-01-30T09:50:55.640 回答
1

对于实时 Web 应用程序,我建议您使用 websockets,它们可以是安全的,并且响应时间非常快,因为建立连接时不再存在通信开销。如果你精通 python,你可以使用autobahn在 python 中创建服务器,在python和/或 javascript 中创建客户端。PS这里是一个非常棒的twisted教程。

于 2013-01-30T10:08:26.547 回答