Python Twisted producer为多个客户端提供缓冲区
我正在使用twisted将一些信息分发给几个客户 我有一个消费者(实现Python Twisted producer为多个客户端提供缓冲区,python,twisted,Python,Twisted,我正在使用twisted将一些信息分发给几个客户 我有一个消费者(实现IConsumer),其write方法被覆盖以写入所有连接的消费者客户端 我有一个实现为生成器的数据源 这是我的主要功能 factory = TelemetryFactory() one2many = ConsumerToManyClientConsumers() # writes from the datalines generator to one2many telem = TelemetryProducer(one2ma
IConsumer
),其write
方法被覆盖以写入所有连接的消费者客户端
我有一个实现为生成器的数据源
这是我的主要功能
factory = TelemetryFactory()
one2many = ConsumerToManyClientConsumers()
# writes from the datalines generator to one2many
telem = TelemetryProducer(one2many, datalines)
factory.setSource(one2many)
reactor.listenTCP(1234, factory)
reactor.run()
如何运行生成器(或遥测生成器),以便无论有多少个客户端(0-10个),它始终运行
编辑:使用reactor.callInThread(fn)似乎给出了所需的行为,只是CTRL+C不能正确退出程序。CTRL+C后,所有连接都被拒绝,但控制权不会退回到外壳。尝试。什么生成器?什么
fn
?请看发电机是什么发电机。它从某些来源生成数据。该函数运行生成器并将数据写入one2many使用者,而后者又将数据写入连接的客户端。不过,代码与这个问题并不真正相关,可能包括它是一个错误。