Заводы - это просто объекты. Чтобы передавать данные от одного к другому, вы определяете и вызываете методы и передаете данные в качестве параметра или устанавливаете атрибуты. Я думаю, что этот вопрос faq поможет вам:
Как мне сделать ввод одного результата соединения на выходе другим?
Кажется, что это вопрос с Twisted, но на самом деле это вопрос Python. Каждый объект
Protocol
представляет одно соединение; вы можете вызвать егоtransport.write
, чтобы записать в него некоторые данные. Это обычные объекты Python; вы можете поместить их в списки, словари или любую другую структуру данных, подходящую для вашего приложения.В качестве простого примера добавьте список на свой завод, а в
connectionMade
иconnectionLost
, добавьте его и удалите из этого списка. Вот код Python:blockquote>from twisted.internet.protocol import Protocol, Factory from twisted.internet import reactor class MultiEcho(Protocol): def connectionMade(self): self.factory.echoers.append(self) def dataReceived(self, data): for echoer in self.factory.echoers: echoer.transport.write(data) def connectionLost(self, reason): self.factory.echoers.remove(self) class MultiEchoFactory(Factory): protocol = MultiEcho def __init__(self): self.echoers = [] reactor.listenTCP(4321, MultiEchoFactory()) reactor.run()