标签: python twisted
我想干净地断开连接,然后停止反应堆。但是,如果我这样做:
controller.connection.disconnect() reactor.stop()
然后我得到一个“以非干净的方式丢失连接”的消息。如果我在它们之间插入time.sleep(1),则连接会完全关闭。我怎么能等到连接真的关闭?
time.sleep(1)
答案 0 :(得分:4)
您可以收听来自twisted的回调,表示连接已断开连接。 This blog描述了实现此目的的方法。
答案 1 :(得分:0)
我最近一直想知道同样的事情,如何以干净的方式断开我的客户端。虽然客户端是LineReceiver的子类,但我尝试过:
LineReceiver
connector.disconnect()
self.factory.close()(factory Factory返回buildProtocol()为IAddress
self.factory.close()
factory
Factory
buildProtocol()
IAddress
reactor.stop()
但我在某些文档中实际发现的是:
self.transport.loseConnection()
它干净地关闭连接。这个问题现在已经很老了,但我希望将来可以帮助某人:)