去年我一直在用Django开发一个web服务器应用程序。堆栈是Django+Apache+MySql。这堆东西非常适合我们的需要。最近出现了对一些实时功能的需求,以及更改/重写服务器应用程序中许多内容的机会。令我惊讶的是,Django不是这里最好的选择。
我读了很多书(push,WebSockets,gunicorn。。。很多东西。。http://curella.org/blog/django-push-using-server-sent-events-and-websocket/)但我还没有决定是否要和Django一起使用,或者是否应该使用一个更适合这项工作的新软件栈。和Django一起去似乎有点不自然。有经验的开发人员能给我指出正确的方向吗?
所以,最基本的问题是:对于构建一个实时web应用程序,我有哪些替代当前软件堆栈的方法?
谢谢
附言:不是以英语为母语的人。:)
编辑:备选方案需要允许安全连接。
编辑2:我们开发的web应用程序是游戏。
研究http://www.tornadoweb.org/+http://www.mongodb.org/+https://github.com/bitly/asyncmongo+http://socket.io/ 我认为用它来创建实时应用程序是个好主意。
对于实时web应用程序,我建议您使用websockets,它们可以是安全的,并且响应时间非常快,因为当建立连接时,不再有通信开销。如果您精通python,那么可以使用pythontwisted创建服务器,使用python和/或javascript创建客户端。P、 S.here是twisted非常好的教程。
你需要权衡你的决定和你的目标。
你想要一个产品
然后在您最熟悉的语言框架中编写代码,只有当您有一个产品并且它有限制时才可以考虑切换工具。
你想学点新东西
尝试一下新的语言,框架——但是生产一个产品可能需要更长的时间,你可能会发现新的工具并不比旧的好。
一半和一半
尝试启动两个项目,在每个项目中构建相同的东西,只需使用另一个工具。这将需要更长的时间,但是您应该能够很快地看到您喜欢/最适合您的任务的工具。
替代品
我不太清楚你说的django是什么意思“不自然”。Django可以进行服务器/客户机通信—只需使用一些AJAX与Django服务器进行对话,然后调用另一个pythonic库来处理请求。Python替代django的方法包括美妙的flask和web.py,不过除非您也对它们进行编程,否则它们都不会进行客户机/服务器通信(比如django)。如果你不喜欢python,你可以试试ruby on rails。对于客户端,您需要了解一些关于JavaScript的知识,所以去学习一下(coffescript和jQuery可以减轻JS的痛苦,但一定要先学习JavaScript)。
当然,你可以咬紧牙关,使用node.js作为服务器基础,显然它非常好(我还没有尝试过),而且是用JS编写的。
编辑: 根据你的评论,仔细看看
还要注意这个问题是一个潜在的duplicate。
相关问题 更多 >
编程相关推荐