[Twisted-Python] Multiple clients
Jason J. W. Williams
jasonjwwilliams at gmail.com
Fri Jun 18 14:58:22 MDT 2010
If you're not using twistd to launch your app you'll have to run
reactor.run(). Otherwise, the eventloop won't ever start.
In terms of exposing something like get_messages()...couldn't that
issue the callLater with a very tiny value? Or issue the first
connectTCP, which the others chained via addCallback?
-J
On Fri, Jun 18, 2010 at 11:55 AM, Szabolcs Balogh <bszabolcs at gmail.com> wrote:
> On Friday 18 June 2010 20:25:50 Itamar Turner-Trauring wrote:
>> > It sounds good, but if I don't call reactor.run() after connectSSL
>> > doesn't happens anything... If I call reactor.run() after connectSSL, it
>> > works properly...
>>
>> There are two types of client connections:
>>
>> 1. Connections you open when you first run the program. Call these before
>> reactor.run() is called.
>>
>> 2. Connections that happen as result of events. Events are all dispatched
>> by the reactor, so e.g. gui click or data received over network connection
>> will result in functions being called by the reactor. These functions can
>> also open new connections.
>>
>> The key here is to distinguish between the order of the code in the text
>> file, and the order the code runs in. In the following example, the
>> connectTCP will happen *after* reactor.run():
>>
>>
>> # this will get called 10 seconds after reactor.run():
>> def happensLater():
>> reactor.connectTCP(....)
>>
>> reactor.callLater(10, happensLater)
>> reactor.run()
>>
>>
>>
>> _______________________________________________
>> Twisted-Python mailing list
>> Twisted-Python at twistedmatrix.com
>> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
> It is possible to:
> - start the reactor when I initialize my program (eg. in main)
> - call connectTCP or connectSSL when I want and every time I want?
>
> Something like this:
>
> def check_messages(account):
> # connect to imap server and check for new mailboxes/messages
> reactor.connectSSL(...)
>
>
> if __name__ == "__main__":
> reactor.run()
>
> check_message(account1)
> check_message(account2)
> ...
> do something else
> ...
> check_message(accountn)
>
>
> Because I can't implement this :}
>
> I have started the implementation based on "Twisted Network Programming
> Essential", but this book doesn't treat multiple connections...
>
> _______________________________________________
> Twisted-Python mailing list
> Twisted-Python at twistedmatrix.com
> http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python
>
More information about the Twisted-Python
mailing list