【问题标题】:Closing Perspective Broker connection in Twisted在 Twisted 中关闭 Perspective Broker 连接
【发布时间】:2026-02-05 16:35:02
【问题描述】:

我有一个程序,它的服务器使用 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() 来关闭连接,但我认为这不是正确的方法。

【问题讨论】:

    标签: python twisted rpc


    【解决方案1】:

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

    通过 PB 连接创建的RemoteReference 实例具有broker 属性。 broker 属性指的是创建它们的协议实例。与通常的协议一样,代理具有transport 属性,而传输具有loseConnection 方法。

    【讨论】:

      最近更新 更多