diff options
Diffstat (limited to 'deps/rabbitmq_stomp/examples')
19 files changed, 225 insertions, 0 deletions
diff --git a/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_recv.pl b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_recv.pl new file mode 100755 index 0000000000..7b8b9cce0c --- /dev/null +++ b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_recv.pl @@ -0,0 +1,13 @@ +#!/usr/bin/perl -w +# subscribe to messages from the queue 'foo' +use Net::Stomp; +my $stomp = Net::Stomp->new({hostname=>'localhost', port=>'61613'}); +$stomp->connect({login=>'guest', passcode=>'guest'}); +$stomp->subscribe({'destination'=>'/queue/foo', 'ack'=>'client'}); +while (1) { + my $frame = $stomp->receive_frame; + print $frame->body . "\n"; + $stomp->ack({frame=>$frame}); + last if $frame->body eq 'QUIT'; +} +$stomp->disconnect; diff --git a/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_rpc_client.pl b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_rpc_client.pl new file mode 100755 index 0000000000..b3e5ee6fd3 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_rpc_client.pl @@ -0,0 +1,14 @@ +#!/usr/bin/perl -w + +use Net::Stomp; +my $stomp = Net::Stomp->new({hostname=>'localhost', port=>'61613'}); +$stomp->connect({login=>'guest', passcode=>'guest'}); + +my $private_q_name = "/temp-queue/test"; + +$stomp->send({destination => '/queue/rabbitmq_stomp_rpc_service', + 'reply-to' => $private_q_name, + body => "request from $private_q_name"}); +print "Reply: " . $stomp->receive_frame->body . "\n"; + +$stomp->disconnect; diff --git a/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_rpc_service.pl b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_rpc_service.pl new file mode 100755 index 0000000000..31e79aea4a --- /dev/null +++ b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_rpc_service.pl @@ -0,0 +1,21 @@ +#!/usr/bin/perl -w + +use Net::Stomp; + +my $stomp = Net::Stomp->new({hostname=>'localhost', port=>'61613'}); +$stomp->connect({login=>'guest', passcode=>'guest'}); + +$stomp->subscribe({'destination'=>'/queue/rabbitmq_stomp_rpc_service', 'ack'=>'client'}); +while (1) { + print "Waiting for request...\n"; + my $frame = $stomp->receive_frame; + print "Received message, reply_to = " . $frame->headers->{"reply-to"} . "\n"; + print $frame->body . "\n"; + + $stomp->send({destination => $frame->headers->{"reply-to"}, bytes_message => 1, + body => "Got body: " . $frame->body}); + $stomp->ack({frame=>$frame}); + last if $frame->body eq 'QUIT'; +} + +$stomp->disconnect; diff --git a/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_send.pl b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_send.pl new file mode 100755 index 0000000000..4d26b7837e --- /dev/null +++ b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_send.pl @@ -0,0 +1,9 @@ +#!/usr/bin/perl -w +# send a message to the queue 'foo' +use Net::Stomp; +my $stomp = Net::Stomp->new({hostname=>'localhost', port=>'61613'}); +$stomp->connect({login=>'guest', passcode=>'guest'}); +$stomp->send({destination=>'/exchange/amq.fanout', + bytes_message=>1, + body=>($ARGV[0] or "test\0message")}); +$stomp->disconnect; diff --git a/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_send_many.pl b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_send_many.pl new file mode 100755 index 0000000000..f6ff54ed95 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_send_many.pl @@ -0,0 +1,11 @@ +#!/usr/bin/perl -w +# send a message to the queue 'foo' +use Net::Stomp; +my $stomp = Net::Stomp->new({hostname=>'localhost', port=>'61613'}); +$stomp->connect({login=>'guest', passcode=>'guest'}); +for (my $i = 0; $i < 10000; $i++) { + $stomp->send({destination=>'/queue/foo', + bytes_message=>1, + body=>($ARGV[0] or "message $i")}); +} +$stomp->disconnect; diff --git a/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_slow_recv.pl b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_slow_recv.pl new file mode 100755 index 0000000000..043568f348 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/perl/rabbitmq_stomp_slow_recv.pl @@ -0,0 +1,14 @@ +#!/usr/bin/perl -w +# subscribe to messages from the queue 'foo' +use Net::Stomp; +my $stomp = Net::Stomp->new({hostname=>'localhost', port=>'61613'}); +$stomp->connect({login=>'guest', passcode=>'guest', prefetch=>1}); +$stomp->subscribe({'destination'=>'/queue/foo', 'ack'=>'client'}); +while (1) { + my $frame = $stomp->receive_frame; + print $frame->body . "\n"; + sleep 1; + $stomp->ack({frame=>$frame}); + last if $frame->body eq 'QUIT'; +} +$stomp->disconnect; diff --git a/deps/rabbitmq_stomp/examples/ruby/amq-sender.rb b/deps/rabbitmq_stomp/examples/ruby/amq-sender.rb new file mode 100644 index 0000000000..baaab5628c --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/amq-sender.rb @@ -0,0 +1,10 @@ +require 'rubygems' +require 'stomp' + +client = Stomp::Client.new("guest", "guest", "localhost", 61613) + +# This publishes a message to a queue named 'amq-test' which is managed by AMQP broker. +client.publish("/amq/queue/amq-test", "test-message") + +# close this connection +client.close diff --git a/deps/rabbitmq_stomp/examples/ruby/cb-receiver.rb b/deps/rabbitmq_stomp/examples/ruby/cb-receiver.rb new file mode 100644 index 0000000000..4e6e26141a --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/cb-receiver.rb @@ -0,0 +1,8 @@ +require 'rubygems' +require 'stomp' + +conn = Stomp::Connection.open('guest', 'guest', 'localhost') +conn.subscribe('/queue/carl') +while mesg = conn.receive + puts mesg.body +end diff --git a/deps/rabbitmq_stomp/examples/ruby/cb-sender.rb b/deps/rabbitmq_stomp/examples/ruby/cb-sender.rb new file mode 100644 index 0000000000..3d7594681f --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/cb-sender.rb @@ -0,0 +1,6 @@ +require 'rubygems' +require 'stomp' + +client = Stomp::Client.new("guest", "guest", "localhost", 61613) +10000.times { |i| client.publish '/queue/carl', "Test Message number #{i}"} +client.publish '/queue/carl', "All Done!" diff --git a/deps/rabbitmq_stomp/examples/ruby/cb-slow-receiver.rb b/deps/rabbitmq_stomp/examples/ruby/cb-slow-receiver.rb new file mode 100644 index 0000000000..d98e5f8170 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/cb-slow-receiver.rb @@ -0,0 +1,13 @@ +require 'rubygems' +require 'stomp' + +# Note: requires support for connect_headers hash in the STOMP gem's connection.rb +conn = Stomp::Connection.open('guest', 'guest', 'localhost', 61613, false, 5, {:prefetch => 1}) +conn.subscribe('/queue/carl', {:ack => 'client'}) +while mesg = conn.receive + puts mesg.body + puts 'Sleeping...' + sleep 0.2 + puts 'Awake again. Acking.' + conn.ack mesg.headers['message-id'] +end diff --git a/deps/rabbitmq_stomp/examples/ruby/exchange-receiver.rb b/deps/rabbitmq_stomp/examples/ruby/exchange-receiver.rb new file mode 100644 index 0000000000..76bf4a5c9d --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/exchange-receiver.rb @@ -0,0 +1,15 @@ +require 'rubygems' +require 'stomp' + +conn = Stomp::Connection.open("guest", "guest", "localhost") +conn.subscribe '/exchange/amq.fanout/test' + +puts "Waiting for messages..." + +begin + while mesg = conn.receive + puts mesg.body + end +rescue Exception => _ + conn.disconnect +end diff --git a/deps/rabbitmq_stomp/examples/ruby/exchange-sender.rb b/deps/rabbitmq_stomp/examples/ruby/exchange-sender.rb new file mode 100644 index 0000000000..ed556eacae --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/exchange-sender.rb @@ -0,0 +1,12 @@ +require 'rubygems' +require 'stomp' + +client = Stomp::Client.new("guest", "guest", "localhost", 61613) + +# This publishes a message to the 'amq.fanout' exchange which is managed by +# AMQP broker and specifies routing-key of 'test'. You can get other exchanges +# through 'list_exchanges' subcommand of 'rabbitmqctl' utility. +client.publish("/exchange/amq.fanout/test", "test message") + +# close this connection +client.close diff --git a/deps/rabbitmq_stomp/examples/ruby/persistent-receiver.rb b/deps/rabbitmq_stomp/examples/ruby/persistent-receiver.rb new file mode 100644 index 0000000000..5a83df6fb0 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/persistent-receiver.rb @@ -0,0 +1,11 @@ +require 'rubygems' +require 'stomp' + +conn = Stomp::Connection.open('guest', 'guest', 'localhost') +conn.subscribe('/queue/durable', :'auto-delete' => false, :durable => true) + +puts "Waiting for messages..." + +while mesg = conn.receive + puts mesg.body +end diff --git a/deps/rabbitmq_stomp/examples/ruby/persistent-sender.rb b/deps/rabbitmq_stomp/examples/ruby/persistent-sender.rb new file mode 100644 index 0000000000..1be32d6c76 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/persistent-sender.rb @@ -0,0 +1,13 @@ +require 'rubygems' +require 'stomp' + +# Use this case to test durable queues +# +# Start the sender - 11 messages will be sent to /queue/durable and the sender exits +# Stop the server - 11 messages will be written to disk +# Start the server +# Start the receiver - 11 messages should be received and the receiver - interrupt the receive loop + +client = Stomp::Client.new("guest", "guest", "localhost", 61613) +10.times { |i| client.publish '/queue/durable', "Test Message number #{i} sent at #{Time.now}", 'delivery-mode' => '2'} +client.publish '/queue/durable', "All Done!" diff --git a/deps/rabbitmq_stomp/examples/ruby/temp-queue-client.rb b/deps/rabbitmq_stomp/examples/ruby/temp-queue-client.rb new file mode 100644 index 0000000000..39828708e8 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/temp-queue-client.rb @@ -0,0 +1,9 @@ +require 'rubygems' +require 'stomp' + +conn = Stomp::Connection.open("guest", "guest", "localhost") +conn.publish("/queue/rpc-service", "test message", { + 'reply-to' => '/temp-queue/test' +}) +puts conn.receive.body +conn.disconnect diff --git a/deps/rabbitmq_stomp/examples/ruby/temp-queue-service.rb b/deps/rabbitmq_stomp/examples/ruby/temp-queue-service.rb new file mode 100644 index 0000000000..fea4fa7803 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/temp-queue-service.rb @@ -0,0 +1,15 @@ +require 'rubygems' +require 'stomp' + +conn = Stomp::Connection.open("guest", "guest", "localhost") +conn.subscribe '/queue/rpc-service' + +begin + while mesg = conn.receive + puts "received message and replies to #{mesg.headers['reply-to']}" + + conn.publish(mesg.headers['reply-to'], '(reply) ' + mesg.body) + end +rescue Exception => _ + conn.disconnect +end diff --git a/deps/rabbitmq_stomp/examples/ruby/topic-broadcast-receiver.rb b/deps/rabbitmq_stomp/examples/ruby/topic-broadcast-receiver.rb new file mode 100644 index 0000000000..b338e53c34 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/topic-broadcast-receiver.rb @@ -0,0 +1,11 @@ +require 'rubygems' +require 'stomp' + +topic = ARGV[0] || 'x' +puts "Binding to /topic/#{topic}" + +conn = Stomp::Connection.open('guest', 'guest', 'localhost') +conn.subscribe("/topic/#{topic}") +while mesg = conn.receive + puts mesg.body +end diff --git a/deps/rabbitmq_stomp/examples/ruby/topic-broadcast-with-unsubscribe.rb b/deps/rabbitmq_stomp/examples/ruby/topic-broadcast-with-unsubscribe.rb new file mode 100644 index 0000000000..19f05ee9d2 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/topic-broadcast-with-unsubscribe.rb @@ -0,0 +1,13 @@ +require 'rubygems' +require 'stomp' # this is a gem + +conn = Stomp::Connection.open('guest', 'guest', 'localhost') +puts "Subscribing to /topic/x" +conn.subscribe('/topic/x') +puts 'Receiving...' +mesg = conn.receive +puts mesg.body +puts "Unsubscribing from /topic/x" +conn.unsubscribe('/topic/x') +puts 'Sleeping 5 seconds...' +sleep 5 diff --git a/deps/rabbitmq_stomp/examples/ruby/topic-sender.rb b/deps/rabbitmq_stomp/examples/ruby/topic-sender.rb new file mode 100644 index 0000000000..b0861f9542 --- /dev/null +++ b/deps/rabbitmq_stomp/examples/ruby/topic-sender.rb @@ -0,0 +1,7 @@ +require 'rubygems' +require 'stomp' + +client = Stomp::Client.new("guest", "guest", "localhost", 61613) +client.publish '/topic/x.y', 'first message' +client.publish '/topic/x.z', 'second message' +client.publish '/topic/x', 'third message' |