在 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 连接的主要内容,如果未能解决你的问题,请参考以下文章