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