Twisted中关闭角度代理连接
问题描述:
我有一个程序,它使用Twisted的远程过程调用来相互交互服务器,并且在关闭连接时不再需要它们时遇到问题。连接应该能够在双方中关闭。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()来关闭连接,但我不认为这是正确的方法。
答
另一种选择是reference.broker.transport.loseConnection()
。
RemoteReference
通过PB连接创建的实例具有broker
属性。 broker
属性是指创建它们的协议实例。像通常的协议一样,代理具有transport
属性,而传输具有loseConnection
方法。