[Twisted-Python] Perspective Broker vs AMP
drew.smathers at gmail.com
Mon Mar 31 07:40:44 EDT 2008
On Mon, Mar 31, 2008 at 6:55 AM, Phil Mayers <p.mayers at imperial.ac.uk> wrote:
> Simon Pickles wrote:
> > Hi,
> > You may have seen my recent posts about data comms across nodes of
> > server network.
> > Phil kindly pointed me towards PB and AMP which, after some fiddling
> > both look viable. However, I do have one question: If clients can
> > request remote data from the server, is the reverse possible?
> > As I understand PB, a client can get the root object of a
> > PBServerFactory, thru which it can call methods with the 'remote_'
> > prefix. I'm not clear how this can work in the other direction. As for
> Well, this is a contrived example (since you could just return the
> deferred) but:
> class Server(pb.Referenceable):
> def remote_foo(self, client):
> d = doThing().addCallback(self.thing_result, client)
> def thing_result(self, result, client):
> client.callRemote('thing', result)
> class Client(pb.Referenceable):
> def remote_thing(self, thing):
> # do something
> def callServer(self):
> d = self.server.getRootObject().addCallback(self.callServer2)
> def callServer2(self, server):
> server.callRemote('foo', self)
> That is - when you callRemote() you can pass pb.Referenceable as
> arguments, and the other end call callRemote on those objects.
> > AMP, this seems similar - the client uses callRemote() to execute remote
> > methods on the amp server.
> No idea about AMP
AMP is bidirectional as well. The server uses callRemote to
communicate with the connected client(s):
\\\\/ // //\/\\\\\\\
\\\/ \\// /\ \/\\\\
\\/ /\/ / /\/ /\ \\\
\/ / /\/ /\ /\\\ \\
/ /\\\ /\\\ \\\\\/\
More information about the Twisted-Python