在Twisted中关闭Perspective Broker连接

时间:2010-10-27 11:25:13

标签: python twisted rpc

我有一个程序,它使用Twisted的远程过程调用让服务器相互交互,并且当不再需要它时关闭连接会遇到问题。连接应该能够在两侧关闭。

案例1:如何关闭连接部分的连接?

factory = pb.PBClientFactory()
reactor.connectTCP(ip, port, factory)
deferred = factory.login(credentials.UsernamePassword(username, password), client=self)
deferred.addCallbacks(self.connectedToServer, self.errorConnectingToServer)

def connectedToServer(self, server):
  self.server = server
  # Closing connection comes here

案例2:如何关闭服务器部分中的连接?

class MyPerspective(pb.Avatar):

  def connected(self, server):
    self.client = server
    # Closing connection comes here

目前我使用提升pb.Error()来关闭连接,但我不认为这是正确的方法。

1 个答案:

答案 0 :(得分:1)

另一个选项是reference.broker.transport.loseConnection()

通过PB连接创建的

RemoteReference个实例被赋予broker属性。 broker属性是指创建它们的协议实例。与协议一样,代理具有transport属性,并且传输具有loseConnection方法。