2013-10-31 45 views
6

我的想法是为iOS和Android构建一个简单的聊天应用程序。无论如何,我的问题与服务器端有关。从我读过的内容来看,创建一个聊天应用程序的最佳选择是构建一个套接字。参考数据库,我的意图是使用MySQL,为了选择其中一种可能性,考虑到这一点也很重要。Socket.IO与Twisted

我的问题是,就可扩展性,速度和安全性而言,这是最好的选择:使用Twisted或使用与NodeJS构建Python套接字?

我想可能还有其他的可能性来构建一个高效的套接字,但现在我正在考虑这两个。如果你能给我一些建议,我会很感激。

+2

许多优秀的问题都会根据专家的经验产生一定程度的意见,但对这个问题的回答往往基于意见而非事实,参考或具体专业知识。 “最佳”选项将取决于太多的参数以这种格式来回答。 – Lix

+0

但是,例如,在速度方面,肯定有客观的答案。无论如何,听到与这些图书馆合作过的人的意见不容错过。 –

+0

这将是糟糕的,因为完全基于意见的答案在Stack Overflow中不被认为是有用的。 – Lix

回答

9

比较扭曲和Socket.io比较苹果和卡车携带苹果。 Twisted是一个为Python提供面向事件编程功能的库。在JavaScript中,仅仅是javascript本身(无论是node.js还是网络浏览器,甚至是犀牛)。

更适合的比较是将node.js上的Socket.io与Python上的Socket.io进行比较。虽然上节点的socket.io服务器的一个主要的实现是有几个为Python:

(摘自socket.io wiki:https://github.com/learnboost/socket.io/wiki

如果需要,甚至可以使用Twisted在Python中实现自己的socket.io。这里记录了socket.io协议:https://github.com/LearnBoost/socket.io-spec。但是,这将打败socket.io的目的 - 它将实时Web通信的低级细节抽象出来,并允许您专注于编写业务逻辑。 。

在你部署相同socket.io脚本的浏览器,无论你决定写在服务器用什么语言的客户端

至于哪种语言选择:我的经验法则是选择你最熟悉的语言。调试业务逻辑时会遇到足够的问题。不要使用陌生的语言使其复杂化。

两种语言都经过了激烈的战斗(是的,即使是node.js,考虑到它有多年轻也是令人惊讶的)。 Python例如用于Dropbox等高流量服务的生产。 Node目前正在使用LinkedIn移动等高流量服务。

+0

谢谢@slebetman!你的回答为我清除了许多事情。 –