在 Twisted 中关闭 Perspective Broker 连接

Posted

技术标签:

【中文标题】在 Twisted 中关闭 Perspective Broker 连接【英文标题】:Closing Perspective Broker connection in Twisted 【发布时间】:2010-10-27 11:25:13 【问题描述】:

我有一个程序,它的服务器使用 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】:

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

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

【讨论】:

以上是关于在 Twisted 中关闭 Perspective Broker 连接的主要内容,如果未能解决你的问题,请参考以下文章

在 windows 中关闭显示器

如何在线程中关闭 QWebSocket?

检查在java中关闭的游标

如何在导航控件片段中关闭导航 DrawerLayout onBackPressed

在 python 的运行脚本中关闭 GPU

在 WPF Frame 控件中关闭导航页面声音