[Twisted-Python] servers that are also clients? (newbie question)

Eugene Coetzee projects at reedflute.com
Wed Mar 16 10:01:12 MST 2005


mikah at ceruleansoftware.com wrote:

>  My app is both a server and client at the same time. It takes
>requests from some clients, and also relays these requests
>(suitably reformatted) to a pair of third-party servers. In
>this sense, it is acting as a client (I intend to use
>ReconnectingClient for this).
>
>  
>
I'm busy doing the same kind of thing.

I use a separate server/client factory which I connect with some 
abstraction layer I choose to call a conductor. The conductor also 
manages a buffer and uses callbacks into the server/client protocol 
instances.

I'm sure there must be a more clever Twisted way of doing this but I 
couldn't find any docs.

here is how the contraption starts up.

*************************************
from eva_config import EvaConfig
from eva_conductor import Conductor
from controller import ControllerFactory
from courier import CourierClientFactory
from twisted.application import service,internet

resourcemap=EvaConfig().getResourceMap()
conductor=Conductor(resourcemap).configure()
application=service.Application('eva',uid=1000,gid=100)
controllerfactory = ControllerFactory(conductor)
internet.TCPServer(8831,controllerfactory).setServiceParent( 
service.IServiceCollection(application))
courierclientfactory = CourierClientFactory(conductor)
internet.TCPClient("server1","ftp",courierclientfactory).setServiceParent( 
service.IServiceCollection(application))
****************************************

Works for me.

Eugene Coetzee

Web                 -> www.reedflute.com
=============================================== 






More information about the Twisted-Python mailing list