python - Socket.IO 与 Twisted

标签 python node.js sockets socket.io twisted

<分区>

我的想法是为 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 移动等高流量服务。

关于python - Socket.IO 与 Twisted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19711517/

相关文章:

node.js - 将 ENUM 与 Sequelize 和 Typescript 结合使用

javascript - 如何知道 npm `unzip` 模块何时完成解压缩文件?

Android套接字连接超时

sockets - TCP/IP 套接字是原子的吗?

python - BeautifulSoup 找不到 parent

python - 谷歌云外壳 HttpAccessTokenRefreshError : This can occur if a VM was created with no service account or scopes

python - 在 Python 的排列下没有元素相同的集合的笛卡尔积

python - 动态创建列。为它们分配一个常量行向量

javascript - 从 Node fs 模块中的绝对路径读取本地文件

java - 用于代理的 jsocks 库