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