我的想法是为 iOS 和 Android 构建一个简单的聊天应用程序。无论如何,我的问题与服务器端有关。根据我的阅读,制作聊天应用程序的最佳选择是构建一个套接字。关于数据库,我打算使用 MySQL,这可能也是重要的考虑因素,以便选择其中一种可能性。
我的问题是,就可扩展性、速度和安全性而言,这是最佳选择:使用 Twisted 使用 Python 构建套接字 |或与 NodeJS 一起使用 Socket.IO ?
我想可能还有其他的可能性来构建一个高效的套接字,但现在我正在考虑这两个。如果您能给我一些建议,我将不胜感激。
比较 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 协议(protocol)记录在此处:https://github.com/LearnBoost/socket.io-spec .但这会违背 socket.io 的目的 - 它抽象出实时网络通信的底层细节,让您专注于编写业务逻辑。
在客户端,无论您决定使用哪种语言编写服务器,您都会将相同的 socket.io 脚本部署到浏览器。
关于选择哪种语言:我的经验法则是选择您最熟悉的语言。您在调试业务逻辑时会遇到足够多的问题。不要使用不熟悉的语言使其复杂化。
这两种语言都经受住了考验(是的,即使是 node.js,考虑到它的年轻程度,这也是令人惊讶的)。例如,Python 在 Dropbox 等高流量服务的生产中使用。 Node 目前用于 LinkedIn 移动等高流量服务。