from twisted.internet import reactor from twisted.internet.protocol import Protocol, ReconnectingClientFactory from sys import stdout from twisted.internet import task from pprint import pprint class DMDB(Protocol): def sendMessage(self): print "sendMessage" self.transport.write("3") def connectionMade(self): print "connectionMade" t = task.LoopingCall(self.sendMessage()) t.start(1.0) def dataReceived(self, data): stdout.write(data) class DMDBFactory(ReconnectingClientFactory): def startedConnecting(self, connector): print 'Started to connect.' def buildProtocol(self, addr): print 'Connected.' print 'Resetting reconnection delay' self.resetDelay() return DMDB() def clientConnectionLost(self, connector, reason): print 'Lost connection. Reason:', reason ReconnectingClientFactory.clientConnectionLost(self, connector, reason) def clientConnectionFailed(self, connector, reason): print 'Connection failed. Reason:', reason ReconnectingClientFactory.clientConnectionFailed(self, connector, reason) reactor.connectTCP("dbalancer-01.adm.dailymotion.com", 8007, DMDBFactory()) reactor.run()