[Twisted-Python] session management

exarkun at twistedmatrix.com exarkun at twistedmatrix.com
Thu Apr 1 23:09:10 EDT 2010


On 02:38 am, elihusmails at gmail.com wrote:
>On Wed, Mar 31, 2010 at 5:39 PM,  <exarkun at twistedmatrix.com> wrote:
>>On 04:10 am, elihusmails at gmail.com wrote:
>>>On Tue, Mar 30, 2010 at 6:42 PM, Itamar Turner-Trauring
>>><itamar at itamarst.org> wrote:
>>>>>Greetings,
>>>>>
>>>>>I am new to this list and twisted.  I have worked with some systems
>>>>>similar to twisted, notably Apache MINA.  I am trying to find out 
>>>>>how
>>>>>to set up my server to support sessions for multiple clients. 
>>>>>Right
>>>>>now I am simply developing a telnet-like application to learn 
>>>>>twisted
>>>>>but cannot figure out how to manage sessions for the remote 
>>>>>clients.
>>>>
>>>>Each Protocol instance stays alive for the lifetime of the 
>>>>connection
>>>>it
>>>>is matched to (via the transport). So just store attributes on the
>>>>Protocol instance.
>>>
>>>I figured as much that twisted supported the notion of sessions.  Are
>>>there any examples that show me how to access them and
>>>add/remove/update attributes in the session?
>>
>>Protocol instances are normal Python objects.  You can use normal 
>>Python
>>attributes on them in the normal way.  For example:
>>
>>   from twisted.internet.protocol import Protocol
>>
>>   class Counter(Protocol):
>>       """
>>       Keep track of how many times data is delivered over a 
>>connection.
>>       """
>>       def connectionMade(self):
>>           self.count = 0
>>
>>       def dataReceived(self, bytes):
>>           self.count += 1
>
>Thanks for the help, but how do I access the session?  What would be
>the method call to put the data into a session for instance?

The protocol instance *is* the session (or, as I would normally say "the 
protocol instance has a one to one relationship with a connection", but 
I think that's what you mean when you say "the session").  You can 
define whichever methods and attributes you want.

It's a regular Python object.  All the regular stuff you know about 
Python objects applies.

Jean-Paul



More information about the Twisted-Python mailing list