summaryrefslogtreecommitdiff
path: root/python/examples/request-response/server.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/examples/request-response/server.py')
-rwxr-xr-xpython/examples/request-response/server.py48
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)