Socket.IO与Twisted

Socket.IO vs. Twisted(Socket.IO与Twisted)
本文介绍了Socket.IO与Twisted的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的想法是为iOS和Android构建一个简单的聊天应用程序。无论如何,我的问题都与服务器端有关。根据我所读到的,开发聊天应用程序的最佳选择是构建一个套接字。谈到数据库,我打算使用MySQL,在选择其中一种可能性时,考虑这一点可能也很重要。

我的问题是,从可伸缩性、速度和安全性来看,哪一个是最好的选择:用Twisted用Python构建套接字,还是用Socket.IO用NodeJS构建套接字?

我猜可能还有其他构建高效套接字的可能性,但到目前为止,我正在考虑这两个。如果你能给我一些建议,我将不胜感激。

推荐答案

比较Twisted和Socket.io就是把苹果比作一辆运苹果的卡车。Twisted是一个向Python提供面向事件编程功能的库。在Java脚本中,这仅仅是Java脚本本身(可以是node.js或Web浏览器,甚至是Rhino)。

更恰当的比较是比较node.js上的Socket.io和Python上的Socket.io。虽然在节点上有一个主要的Socket.IO服务器实现,但是有几个用于Python的实现:

  • https://github.com/MrJoes/tornadio

  • https://github.com/abourget/gevent-socketio

  • https://github.com/stephenmcd/django-socketio

(摘自Socket.IO维基: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也是如此,考虑到它是如此年轻,这是令人惊讶的)。例如,在Dropbox等高流量服务的生产中就使用了Python。节点当前正在LinkedIn Mobile等高流量服务上使用。

这篇关于Socket.IO与Twisted的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)