def run
conn = get_connection()
raise "Unexpected protocol level" if conn.protocol != Stomp::SPL_11
qname = "/queue/nodea.nodeb.nodec"
data = "message payload: #{Time.now.to_f}"
key2_repeats = ["key2val3", "key2val2", "key2val1" ]
headers = {"key1" => "value1",
"key2" => key2_repeats,
"key3" => "value3",
}
conn.publish qname, data , headers
puts "Sent data: #{data}"
uuid = conn.uuid()
conn.subscribe qname, {"id" => uuid}
received = conn.receive
conn.unsubscribe qname, {"id" => uuid}
raise "Unexpected payload" unless data == received.body
raise "Missing key" unless received.headers["key2"]
raise "Repeats not present" unless received.headers.has_value?(key2_repeats)
raise "Unexpected repeat values" unless key2_repeats == received.headers["key2"]
received.headers.each_pair do |k,v|
if v.is_a?(Array)
v.each do |e|
puts "#{k}:#{e}"
end
else
puts "#{k}:#{v}"
end
end
conn.disconnect
end