Pregunta

I am writing a server with multiple clients. When a client starts, the server may not yet be working. So a reactor.connectTCP may fail (no receiving end). Currently I'm solving this by looping on a reactor.run, i.e.:

  1. connect to server
  2. reactor.run
  3. if fails, repeat

I understand this is not the way to do it in twisted. How can I do it then?

¿Fue útil?

Solución

You can always try to reconnect within your connectionLost handler, for example:

from twisted.internet.protocol import ClientFactory

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

There is also even a built-in ReconnectingClientFactory. See also: this blurb on reconnection.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top