On Jul 7, 2012, at 6:32 PM, "Eric P. Mangold" <[email protected]> wrote:

> I'm a little bit unclear on what an AMP route is, but as I understand
> it, it is basically a set of AMP Commands that are available at some
> known location - useful for segregating functionality (pre-login,
> post-login, user, admin, etc). Glyph, is that right?

It's not really the set of commands, so much as it is an identified endpoint 
for AMP boxes, so that you can multiplex them over a single connection.  The 
general idea is that you stick an extra key ("_route") into the box, and that 
tells it where to go on the other end of the connection, so you can easily have 
as many parallel AMP streams as you want with only one TCP connection.  No 
protocol switching if you want to do this, of course.

Of course, your peer on a particular route will have a specific set of commands 
available, but so will the "root" route, i.e. the thing that you are talking to 
when you establish a TCP connection.  (Plus, maybe you get some extra or 
different stuff after you authenticate.)

But your peer on a particular route might be a completely dumb IBoxReceiver 
without even command-dispatch logic.

You can see an implementation of this here: 
<http://bazaar.launchpad.net/~divmod-dev/divmod.org/trunk/view/head:/Epsilon/epsilon/amprouter.py>.
  (And I could swear there's a twisted ticket to integrate this but I can't 
find it in a quick search.)

-glyph

_______________________________________________
Twisted-Python mailing list
[email protected]
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to