diff options
author | Gordon Sim <gsim@apache.org> | 2008-05-12 17:23:21 +0000 |
---|---|---|
committer | Gordon Sim <gsim@apache.org> | 2008-05-12 17:23:21 +0000 |
commit | 3a923f1e6a96e856911d3bbf49dc7af42e16c98b (patch) | |
tree | fbf3732cbddb43f09713652f8c1052f48582e7ed /python/examples/request-response/client.py | |
parent | 0655ff5aceb9d53eb256a05d7beb55b1c803c8de (diff) | |
download | qpid-python-3a923f1e6a96e856911d3bbf49dc7af42e16c98b.tar.gz |
QPID-1044: Part of patch from Jonathan Robie + changes to verify scripts to keep automated testing working.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@655568 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/examples/request-response/client.py')
-rwxr-xr-x | python/examples/request-response/client.py | 89 |
1 files changed, 49 insertions, 40 deletions
diff --git a/python/examples/request-response/client.py b/python/examples/request-response/client.py index 8f7d430d1b..0fcd256d49 100755 --- a/python/examples/request-response/client.py +++ b/python/examples/request-response/client.py @@ -18,18 +18,7 @@ from qpid.queue import Empty def dump_queue(queue_name): - print "Messages queue: " + queue_name - - consumer_tag = queue_name # Use the queue name as the consumer tag - need a unique tag - queue = session.incoming(consumer_tag) - - # Call message_subscribe() to tell the broker to deliver messages - # from the AMQP queue to a local client queue. The broker will - # start delivering messages as soon as message_subscribe() is called. - - session.message_subscribe(queue=queue_name, destination=consumer_tag) - session.message_flow(consumer_tag, 0, 0xFFFFFFFF) - session.message_flow(consumer_tag, 1, 0xFFFFFFFF) + print "Messages on queue: " + queue_name message = 0 @@ -47,25 +36,27 @@ def dump_queue(queue_name): break - # Messages are not removed from the queue until they - # are acknowledged. Using cumulative=True, all messages - # in the session up to and including the one identified - # by the delivery tag are acknowledged. This is more efficient, - # because there are fewer network round-trips. - - #if message != 0: - # message.complete(cumulative=True) - - #----- 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"] @@ -73,11 +64,11 @@ 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() +socket = connect(host, port) +connection = Connection (sock=socket, spec=qpid.spec.load(amqp_spec)) +connection.start() +session = connection.session(str(uuid4())) -session_id = str(uuid4()) -session = conn.session(session_id) #----- Main Body -- ---------------------------------------- @@ -85,9 +76,23 @@ session = conn.session(session_id) # same string as the name of the queue and the name of the routing # key. -replyTo = "ReplyTo:" + session_id -session.queue_declare(queue=replyTo, exclusive=True) -session.exchange_bind(exchange="amq.direct", queue=replyTo, binding_key=replyTo) +reply_to = "reply_to:" + session.name +session.queue_declare(queue=reply_to, exclusive=True) +session.exchange_bind(exchange="amq.direct", queue=reply_to, binding_key=reply_to) + +# Create a local queue and subscribe it to the response queue + +local_queue_name = "local_queue" +queue = session.incoming(local_queue_name) + +# Call message_subscribe() to tell the broker to deliver messages from +# the server's reply_to queue to our local client queue. The server +# will start delivering messages as soon as message credit is +# available. + +session.message_subscribe(queue=reply_to, 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) # Send some messages to the server's request queue @@ -96,16 +101,20 @@ lines = ["Twas brilling, and the slithy toves", "All mimsy were the borogroves,", "And the mome raths outgrabe."] -for ln in lines: - print "Request: " + ln - mp = session.message_properties() - mp.reply_to = session.reply_to("amq.direct", replyTo) - dp = session.delivery_properties(routing_key="request") - session.message_transfer("amq.direct", None, None, Message(mp,dp,ln)) +# We will use the same reply_to and routing key +# for each message + +message_properties = session.message_properties() +message_properties.reply_to = session.reply_to("amq.direct", reply_to) +delivery_properties = session.delivery_properties(routing_key="request") + +for line in lines: + print "Request: " + line + session.message_transfer(destination="amq.direct", message=Message(message_properties, delivery_properties, line)) -# Now see what messages the server sent to our replyTo queue +# Now see what messages the server sent to our reply_to queue -dump_queue(replyTo) +dump_queue(reply_to) #----- Cleanup ------------------------------------------------ |