Я пишу какое-то программное обеспечение для резервного копирования с помощью Twisted PB для получения информации с сервера и с сервера, и все работает очень хорошо.Отслеживание клиентов подключается к серверу Twisted PB
Что бы я хотел, чтобы отслеживать, какие клиенты подключены к серверу. Мне удалось получить IP-адрес соединения, зарегистрированного при подключении клиента. Первоначально клиенты получают доступ к объекту pb.Root, который имеет только один метод, этот метод возвращает другой объект, который предоставляет доступ к сохраненным данным.
Что мне нужно сделать, это обновить сведения о подключении для подключенного клиента, чтобы включить некоторую информацию, которая отправляется в вызове, отправленном на сервер.
Вот мой код для клиента каротажного
class RKRServerFactory(pb.PBServerFactory):
clientsConnected = {}
def buildProtocol(self, addr):
"""
Return a Broker attached to the factory (as the service provider).
"""
self.clientsConnected[addr.host] = None
print self.clientsConnected
proto = self.protocol(isClient=False, security=self.security)
proto.factory = self
proto.setNameForLocal("root", self.root.rootObject(proto))
return proto
Вот код для первоначального подключения метода
def __init__(self):
self.hostid = None
self.storage = None
self.databasepath = None
def remote_connect(self, hostid):
self.hostid = hostid
self.databasepath = os.path.join(os.path.join("/media/098974ed-f717-4dd4-8306-7c4863e87e67/rkr_server_storage", hostid))
try:
self.__initDatabase(self.databasepath)
except IOError, e:
return defer.fail(e)
self.storage = RKRStorage(self)
return defer.succeed(self.storage)
Я не уверен, как получить отсоединение клиента, чтобы быть зарегистрированным тоже. Если кто-то может помочь, я бы очень признателен.
Я пытаюсь отслеживать подключенных клиентов на конце сервера PB-соединения, и я не вижу способа сделать это. – Deano123
Так вы это делаете. Создает методы для '' clientConnectMade'' и '' clientConnectionLost'' и сохраняет сопоставление где-то из ваших подключенных клиентов. –