diff options
Diffstat (limited to 'python/examples/request-response/server.py')
-rwxr-xr-x | python/examples/request-response/server.py | 48 |
1 files changed, 30 insertions, 18 deletions
diff --git a/python/examples/request-response/server.py b/python/examples/request-response/server.py index 4377571248..7b182723b9 100755 --- a/python/examples/request-response/server.py +++ b/python/examples/request-response/server.py @@ -4,6 +4,7 @@ Server for a client/server example """ + import qpid import sys import os @@ -22,31 +23,42 @@ def respond(session, request): message_properties = request.get("message_properties") reply_to = message_properties.reply_to if reply_to == None: - raise Exception("reply to property needs to be there") - - props = session.delivery_properties(routing_key=reply_to["routing_key"]) - session.message_transfer(reply_to["exchange"],None, None, Message(props,request.body.upper())) + raise Exception("This message is missing the 'reply_to' property, which is required") + + props = session.delivery_properties(routing_key=reply_to["routing_key"]) + session.message_transfer(destination=reply_to["exchange"], message=Message(props,request.body.upper())) #----- Initialization -------------------------------------- + # Set parameters for login -host=len(sys.argv) > 1 and sys.argv[1] or "127.0.0.1" -port=len(sys.argv) > 2 and int(sys.argv[2]) or 5672 + +host="127.0.0.1" +port=5672 user="guest" password="guest" -amqp_spec="" +amqp_spec="/usr/share/amqp/amqp.0-10.xml" + +# If an alternate host or port has been specified, use that instead +# (this is used in our unit tests) +# +# If AMQP_SPEC is defined, use it to locate the spec file instead of +# looking for it in the default location. + +if len(sys.argv) > 1 : + host=sys.argv[1] +if len(sys.argv) > 2 : + port=int(sys.argv[2]) try: amqp_spec = os.environ["AMQP_SPEC"] except KeyError: amqp_spec="/usr/share/amqp/amqp.0-10.xml" -# Create a connection. -conn = Connection (connect (host,port), qpid.spec.load(amqp_spec)) -conn.start() - -session_id = str(uuid4()) -session = conn.session(session_id) +socket = connect(host, port) +connection = Connection (sock=socket, spec=qpid.spec.load(amqp_spec)) +connection.start() +session = connection.session(str(uuid4())) #----- Main Body -- ---------------------------------------- @@ -55,11 +67,11 @@ session = conn.session(session_id) session.queue_declare(queue="request", exclusive=True) session.exchange_bind(exchange="amq.direct", queue="request", binding_key="request") -dest = "request_destination" +local_queue_name = "local_queue" -session.message_subscribe(queue="request", destination=dest) -session.message_flow(dest, 0, 0xFFFFFFFF) -session.message_flow(dest, 1, 0xFFFFFFFF) +session.message_subscribe(queue="request", destination=local_queue_name) +session.message_flow(local_queue_name, session.credit_unit.message, 0xFFFFFFFF) +session.message_flow(local_queue_name, session.credit_unit.byte, 0xFFFFFFFF) # Remind the user to start the client program @@ -70,7 +82,7 @@ sys.stdout.flush() # Respond to each request -queue = session.incoming(dest) +queue = session.incoming(local_queue_name) # If we get a message, send it back to the user (as indicated in the # ReplyTo property) |