第 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