#!/usr/bin/env python # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. # import sys from qpid.connection import Connection from qpid.util import connect from qpid.datatypes import uuid4, Message broker = "127.0.0.1" port = 5672 if len(sys.argv) > 1: broker = sys.argv[1] if len(sys.argv) > 2: port = int(sys.argv[2]) if len(sys.argv) > 3: print >> sys.stderr, "usage: hello-world [ [ ] ]" sys.exit(1) # connect to the server and start a session conn = Connection(connect(broker, port)) conn.start() ssn = conn.session(str(uuid4())) # create a queue ssn.queue_declare("test-queue") # publish a message dp = ssn.delivery_properties(routing_key="test-queue") mp = ssn.message_properties(content_type="text/plain") msg = Message(dp, mp, "Hello World!") ssn.message_transfer(message=msg) # subscribe to a queue ssn.message_subscribe(destination="messages", queue="test-queue", accept_mode=ssn.accept_mode.none) incoming = ssn.incoming("messages") # start incoming message flow incoming.start() # grab a message from the queue print incoming.get(timeout=10) # cancel the subscription and close the session and connection ssn.message_cancel(destination="messages") ssn.close() conn.close()