6

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

我的问题是,就可扩展性、速度和安全性而言,哪个是最佳选择:使用Twisted使用 Python 构建套接字,还是使用 Socket.IO 使用NodeJS构建套接字?

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

4

1 回答 1

11

比较 Twisted 和 Socket.io 正在将苹果比作载有苹果的卡车。Twisted 是一个为 Python 提供面向事件的编程功能的库。在 javascript 中,这仅仅是 javascript 本身(无论是 node.js 还是网络浏览器,甚至是 rhino)。

更恰当的比较是将 node.js 上的 Socket.io 与 Python 上的 Socket.io 进行比较。虽然 node 上有一个 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 移动等高流量服务。

于 2013-10-31T16:55:42.637 回答