2.6. メッセージの送受信
前提条件
- Apache Qpid Proton Python バインディングをインストールしている。
-
myspace
という名前のアドレス空間を作成しておく。 -
myqueue
という名前のアドレスを作成しておく。 -
パスワード
password
を持つuser1
という名前のユーザーを作成しておく。
手順
Python クライアントの例をファイルに保存します。
from __future__ import print_function, unicode_literals import optparse from proton import Message from proton.handlers import MessagingHandler from proton.reactor import Container class HelloWorld(MessagingHandler): def __init__(self, url): super(HelloWorld, self).__init__() self.url = url def on_start(self, event): event.container.create_receiver(self.url) event.container.create_sender(self.url) def on_sendable(self, event): event.sender.send(Message(body="Hello World!")) event.sender.close() def on_message(self, event): print("Received: " + event.message.body) event.connection.close() parser = optparse.OptionParser(usage="usage: %prog [options]") parser.add_option("-u", "--url", default="amqps://localhost:5672/myqueue", help="url to use for sending and receiving messages") opts, args = parser.parse_args() try: Container(HelloWorld(opts.url)).run() except KeyboardInterrupt: pass
アドレス空間のメッセージングエンドポイントのホスト名を取得します。
oc get addressspace myspace -o 'jsonpath={.status.endpointStatuses[?(@.name=="messaging")].externalHost}'
次の手順で、出力をホスト名として使用します。
クライアントを実行します。
python client-example1.py -u amqps://user1:password@messaging.example1.com:443/myqueue