2014-02-17 67 views
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。

+0

什麼生成器?什麼'FN'?請參閱http://sscce.org/ –

+0

發生器是任何發生器。它從某個來源產生數據。該函數運行生成器並將數據寫入one2many使用者,然後寫入連接的客戶端。代碼與這個問題並不相關,也許包括它是一個錯誤。 – CoatedMoose

回答

相關問題