Thanks, Lucas. I spent several hours struggling with this. The source code DOES make it very obvious. :-) I hadn't realized from the buildProtocol API documentation that it assigned the factory attribute to the protocol instance. It's so obvious now... :-)
And, now, I understand the "magic" of assigning the protocol to a factory which I did not before. It runs fine! Mark On Fri, Feb 5, 2010 at 8:04 PM, Lucas Taylor <ltaylor.vo...@gmail.com>wrote: > On 2/5/10 5:23 PM, Mark Bailey wrote: > > Hi Mark, > > The problem is that you have overridden buildProtocol in your Factory > and not set the factory attribute on the protocol instance > (ClusterClient instance has no attribute 'factory'). > > buildProtocol is responsible for creating the protocol instance and the > default implementation takes care of assigning the factory to the protocol. > > see the source for Factory and buildProtocol...it's very concise: > > > http://twistedmatrix.com/trac/browser/tags/releases/twisted-9.0.0/twisted/internet/protocol.py#L87 > > http://twistedmatrix.com/documents/9.0.0/api/twisted.internet.protocol.Factory.html#buildProtocol > > > So something like this should work in your case: > > def buildProtocol(self, addr): > print 'Connected.' > self.resetDelay() > p = self.protocol() > p.factory = self > return p > > > This doc is also helpful for understanding the relationship between > Protocols and Factories: > http://twistedmatrix.com/documents/current/core/howto/servers.html > > It may be worth emphasizing that there's no real magic going on > here...you're just assigning a python object as an attribute of the > protocol instance. > > > Lucas > > > _______________________________________________ > Twisted-Python mailing list > Twisted-Python@twistedmatrix.com > http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python >
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python