Например, у меня есть клиент, который подключается к серверу со следующими данными:
class MyClientFactory(pb.PBClientFactory, ReconnectingClientFactory):
def __init__(self):
pb.PBClientFactory.__init__(self)
self.ipaddress = None
def clientConnectionMade(self, broker):
log.msg('Started to connect.')
pb.PBClientFactory.clientConnectionMade(self, broker)
def buildProtocol(self, addr):
log.msg('Connected to %s' % addr)
return pb.PBClientFactory.buildProtocol(self, addr)
def clientConnectionLost(self, connector, reason):
log.msg('Lost connection. Reason:', reason)
ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
def clientConnectionFailed(self, connector, reason):
log.msg('Connection failed. Reason:', reason)
ReconnectingClientFactory.clientConnectionLost(self, connector, reason)
Таким образом, клиент может автоматически определять, когда теряется соединение.
Как мне получить такое же поведение от сервера, если клиент выходит из строя, например, сбой?
В настоящее время я ловлю DeadReferenceError (путем перебора списка потенциально подключенных клиентов), но это не управляемый событиями способ - и, честно говоря, слишком поздно.
Любые идеи приветствуются.
Заранее спасибо.
Ben