[Twisted-Python] Question about writing a server that accepts multiple clients with independent processing
Gabriel Rossetti
mailing_lists at evotex.ch
Thu Feb 21 09:33:30 MST 2008
Jean-Paul Calderone wrote:
> On Thu, 21 Feb 2008 17:05:32 +0100, Gabriel Rossetti
> <mailing_lists at evotex.ch> wrote:
>> [snip]
>> Sorry, I made a mistake, that should be :
>>
>>
>> class MyXmlStreamFactory(xmlstream.XmlStreamFactory):
>>
>> protocol = XmlStreamTestSrv
>>
>> def buildProtocol(self, *pargs, **kwargs):
>> p = xmlstream.XmlStreamFactory.buildProtocol(self, *pargs,
>> **kwargs)
>> xmlstream.XmlStreamFactory.addBootstrap(xmlstream.STREAM_START_EVENT,
>> p._connected)
>>
>> return p
>>
>> but I get this error :
>>
>> File "test.py", line 91, in buildProtocol
>>
>> xmlstream.XmlStreamFactory.addBootstrap(xmlstream.STREAM_START_EVENT,
>> p._connected)
>> exceptions.AttributeError: XmlStream instance has no attribute
>> '_connected'
>>
>> isn't p supposed to be a XmlStreamTestSrv? Why does it say it's a
>> XmlStream?
>>
>
> In Twisted 2.5, XmlStreamFactory ignores its `protocol´ attribute. In
> the
> next release, it will respect it. Until then, you'll have to instantiate
> the protocol yourself. This is quite simple. The base implementation of
> buildProtocol in current trunk at HEAD just does this:
>
> def buildProtocol(self, addr):
> """
> Create an instance of XmlStream.
>
> The returned instance will have bootstrap event observers
> registered
> and will proceed to handle input on an incoming connection.
> """
> xs = self.protocol(*self.args, **self.kwargs)
> xs.factory = self
> for event, fn in self.bootstraps:
> xs.addObserver(event, fn)
> return xs
>
> Jean-Paul
>
Ahh, ok, so using will never work :-)
ok, I'll do that then, thanks!
Gabriel
More information about the Twisted-Python
mailing list