Socket.IO与Twisted的比较

6

我的想法是为iOS和Android建立一个简单的聊天应用程序。无论如何,我的问题与服务器端有关。从我所阅读到的来看,构建套接字是做聊天应用程序的最佳选择。至于数据库,我的意图是使用MySQL,这也可能是选择其中一种方案的重要考虑因素。

我的问题是,在可扩展性、速度和安全性方面,哪种选项最好:使用Python使用Twisted构建套接字还是使用NodeJS使用Socket.IO

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


3
许多好问题都会在一定程度上基于专家经验产生某种观点,但对于这个问题的回答往往几乎完全基于观点,而不是事实、参考资料或具体专业知识。选择最好的选项将取决于太多参数,无法用本格式来回答。 - Lix
1
但是,例如在速度方面,肯定有一个客观的答案。无论如何,听取那些使用过这些库的人的意见都不会有坏处。 - IOS_DEV
1
@IOS_DEV 速度并没有一个“客观答案”,因为这很大程度上取决于你的工作负载和意图。此外,速度通常是你应该关注的最后一件事情;如果你谈论的是“简单的聊天应用程序”,你通常不需要特别高性能的东西。真正的问题是:你更愿意写Python还是JavaScript?哪一个可以让你更快地启动MVP?我的建议是花些时间尝试每一个;组合一个快速的概念验证聊天应用程序。 - Brian Campbell
谢谢@Lix,我会更认真地考虑它们以备将来的问题!;) 现在,你建议我怎么处理这个问题? - IOS_DEV
@IOS_DEV - 关于这篇帖子,我的建议是什么?我建议你尝试实现你详细介绍的方法之一,只有当你遇到具体问题时才回来发帖,包括有问题的代码。就目前而言,我认为这篇帖子应该被删除。然而,这只是我的个人意见。 - Lix
显示剩余5条评论
1个回答

11
与 Socket.io 相比较 Twisted 就像是一辆运载苹果的卡车和苹果进行比较。Twisted 是一个提供事件驱动编程功能给 Python 的库。而在 JavaScript 中,这只是 JavaScript 本身(无论是 node.js、Web 浏览器还是 rhino)。
更合适的比较是将 node.js 上的 Socket.io 与 Python 上的 Socket.io 进行比较。虽然有一个主要的 socket.io 服务器实现在 node 上,但对于 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 移动端这样的高流量服务中使用。


谢谢@slebetman!你的回答解决了我的很多问题。 - IOS_DEV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接