我需要一个连接到服务器的 tcp 套接字客户端来发送和接收数据。 但是这个套接字必须始终打开,我无法打开另一个套接字。
我总是有一些数据要发送,然后处理对之前发送的数据的回答。
如果我可以打开多个套接字,我认为它会更容易。但在我的例子中,我必须在同一个套接字上异步发送所有内容。
所以问题是,您推荐在 Python 生态系统中使用什么? (扭曲, Tornado 等) 我应该考虑 node.js 还是其他选择?
最佳答案
为此我强烈推荐 Twisted:
- 它为许多 TCP 协议(protocol)提供开箱即用的支持。
- 维护单个连接很容易,有一个
ReconnectingClientFactory
可以处理断开连接并使用指数退避,而LoopingCall
可以轻松实现心跳。 - 有状态协议(protocol)也很容易实现并与复杂的业务逻辑混合。
- 很有趣。
我有一项服务与您提到的完全一样(单一登录、始终保持在线、处理数据)。它已经运行了几个月,表现出色。
Twisted 可能很难理解,但教程 here是一个很好的开始。从长远来看,了解 Twisted 会让您走得更远!
关于Python tcp 套接字客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19402434/