如何在Twisted中的reactor.connectTCP之后关闭连接
发布时间:2020-12-15 16:18:56 所属栏目:百科 来源:网络整理
导读:我想问一个关于如何在扭曲的RPC中关闭连接的问题. 我知道有一个类似的问题,但它似乎没有回答我的问题. 我正在做一些基本连接,如下图所示: cfactory = pb.PBClientFactory()reactor.connectTCP(host,port,cfactory)dfr.addCallbacks(callback,errfun,...)...
我想问一个关于如何在扭曲的RPC中关闭连接的问题.
我知道有一个类似的问题,但它似乎没有回答我的问题. 我正在做一些基本连接,如下图所示: cfactory = pb.PBClientFactory() reactor.connectTCP(<host>,<port>,cfactory) dfr.addCallbacks(<callback>,<errfun>,...) ... (in the <callback> func) remote.callRemote('myfunc',...) 这一切都有效,并做我需要的东西. 解决方法
remote是RemoteReference.它有一个broker属性,它是创建它的twisted.spread.pb.Broker协议实例.与几乎所有协议一样,Broker实例具有transport属性,该属性引用表示协议正在运行的连接的对象.
因此,remote.broker.transport.loseConnection()应该做你想要的. 还有其他选择.您可以在工厂捕获Broker实例: class MyPBFactory(pb.PBClientFactory): def buildProtocol(self,addr): proto = pb.PBClientFactory.buildProtocol(self,addr) self.proto = proto return proto 现在你在工厂有一个proto属性(但是只有在实际建立连接之后,没有任何东西可以清理它,所以在连接丢失后它仍然存在 – 但是你可以照顾它). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |