我正在编写使用 python Twisted API 的应用程序(即WebSocketClientProtocol, WebSocketClientFactory, ReconnectiongClientFactory
。我想将客户端工厂包装到具有以下接口的阅读器中
class Reader:
def start(self):
pass
def stop(self):
pass
Start 函数将用于打开连接(即在 ws api 上连接并开始读取数据),同时stop
将停止此类连接。
我的问题是,如果我使用reactor.run()
inside start
,连接开始并且一切正常,但是我的代码永远不会通过该行(看起来像阻止对我的调用)并且我无法执行后续行(包括.stop
在我的测试中)。
我尝试过使用变体,例如reactor.callFromThread(reactor.run)
甚至reactor.callFromThread(reactor.stop)
是 excplicity 调用Thread(target=...)
,但似乎都没有工作(它们通常根本不构建协议或打开连接)。
欢迎任何有关如何实施的帮助或Reader.start
指南Reader.stop
。