2
我正在使用twisted來分發一些信息給幾個客戶端。扭曲的生產者許多客戶與緩衝區
我有一個消費者(執行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()
如何運行的發電機(或TelemetryProducer),使得它始終運行無論多少客戶有(0-10)?
編輯:使用reactor.callInThread(fn)似乎給出了所需的行爲,除了CTRL + C沒有正確退出程序。在CTRL + C之後,所有連接都被拒絕,但控制不會退回到shell。
什麼生成器?什麼'FN'?請參閱http://sscce.org/ –
發生器是任何發生器。它從某個來源產生數據。該函數運行生成器並將數據寫入one2many使用者,然後寫入連接的客戶端。代碼與這個問題並不相關,也許包括它是一個錯誤。 – CoatedMoose