第4章 例
本章では、サンプルプログラムで AMQ Ruby を使用する方法について説明します。
その他の例は、AMQ Ruby サンプルスイート および Qpid Proton Ruby サンプル を参照してください。
4.1. メッセージの送信 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
このクライアントプログラムは <connection-url> を使用してサーバーに接続し、ターゲット <address> の送信者を作成し、<message-body> を含むメッセージを送信して接続を切断して終了します。
例: メッセージの送信
require 'qpid_proton'
class SendHandler < Qpid::Proton::MessagingHandler
def initialize(conn_url, address, message_body)
super()
@conn_url = conn_url
@address = address
@message_body = message_body
end
def on_container_start(container)
conn = container.connect(@conn_url)
conn.open_sender(@address)
end
def on_sender_open(sender)
puts "SEND: Opened sender for target address '#{sender.target.address}'\n"
end
def on_sendable(sender)
message = Qpid::Proton::Message.new(@message_body)
sender.send(message)
puts "SEND: Sent message '#{message.body}'\n"
sender.close
sender.connection.close
end
end
if ARGV.size == 3
conn_url, address, message_body = ARGV
else
abort "Usage: send.rb <connection-url> <address> <message-body>\n"
end
handler = SendHandler.new(conn_url, address, message_body)
container = Qpid::Proton::Container.new(handler)
container.run
サンプルの実行
サンプルプログラムを実行するには、サンプルプログラムをローカルファイルにコピーし、ruby コマンドを使用して呼び出します。詳細は、3章スタートガイド を参照してください。
$ ruby send.rb amqp://localhost queue1 hello