连接失败后重新启动Twisted-python Reactor

时间:2011-02-21 17:24:32

标签: python client twisted reactor

我正在编写一个包含多个客户端的服务器。当客户端启动时,服务器可能尚未运行。因此reactor.connectTCP可能会失败(没有接收端)。目前我正在通过循环reactor.run来解决这个问题,即:

  1. 连接到服务器
  2. reactor.run
  3. 如果失败,请重复
  4. 我明白这不是扭曲的方式。那怎么办呢?

1 个答案:

答案 0 :(得分:2)

您始终可以尝试在connectionLost处理程序中重新连接,例如:

from twisted.internet.protocol import ClientFactory

class EchoClientFactory(ClientFactory):
    def clientConnectionLost(self, connector, reason):
        connector.connect()

甚至还有一个内置的ReconnectingClientFactory。另见:reconnection上的这个模糊。