重新连接到扭曲的不同地址?

Reconnect to different address in twisted?

我有一台服务器,它向我的客户端发送备份服务器的地址,以防它出现故障。在服务器端,备份服务器是 运行。在客户端,一旦连接丢失,我就无法让客户端连接到备份服务器。我知道我必须将连接逻辑添加到 twisted.internet.protcol.Protocol

中的以下回调
class MyProtocol(Protocol):
    def connectionLost(self, reason):
        print 'Connection Lost'
        print 'Trying to reconnect'
        # How do I reconnect to another address say at localhost:8001

f = Factory()
f.protocol = MyProtocol
reactor.connectTCP("localhost", 8000, f)
reactor.run()

如果 localhost:8000 上的服务器停止,它将触发 connectionLost(..) 方法。在这种方法中,我想将逻辑连接到备份主机,在这种情况下是说 localhost:8001,但可以是任意的。我该怎么做 这个?

编辑: 我想在不使用 ReconnectingClientFactory

的情况下执行此操作
class MyProtocol(Protocol):
    def connectionLost(self, reason):
        print 'Connection Lost'
        print 'Trying to reconnect'
        reactor.connectTCP(
            "localhost", 8001, Factory.forProtocol(MyProtocol),
        )

reactor.connectTCP("localhost", 8000, Factory.forProtocol(MyProtocol))
reactor.run()