Sha256: 28c557a216fdfdd3637fe59ee309e2d6b8925f1e9265a24ea7c128c46a5951b9

Contents?: true

Size: 1.21 KB

Versions: 68

Compression:

Stored size: 1.21 KB

Contents

#!/usr/bin/env ruby
# encoding: utf-8

require "bundler"
Bundler.setup

$:.unshift(File.expand_path("../../../lib", __FILE__))

require "amqp"

EventMachine.run do
  AMQP.connect do |connection|
    channel  = AMQP::Channel.new(connection)
    exchange = channel.topic("pub/sub")

    # Subscribers.
    channel.queue("Everything about development").bind(exchange, :routing_key => "technology.dev.#").subscribe do |payload|
      puts "A new dev post: '#{payload}'"
    end
    channel.queue("Everything about rubies").bind(exchange, :routing_key => "#.ruby").subscribe do |headers, payload|
      puts "A new post about rubies: '#{payload}', routing key = #{headers.routing_key}"
    end

    # Let's publish some test data.
    exchange.publish "Ruby post",     :routing_key => "technology.dev.ruby"
    exchange.publish "Erlang post",   :routing_key => "technology.dev.erlang"
    exchange.publish "Sinatra post",  :routing_key => "technology.web.ruby"
    exchange.publish "Jewelery post", :routing_key => "jewelery.ruby"



    show_stopper = Proc.new {
      connection.close do
        EM.stop
      end
    }

    Signal.trap "INT",  show_stopper
    Signal.trap "TERM", show_stopper

    EM.add_timer(1, show_stopper)
  end
end

Version data entries

68 entries across 68 versions & 1 rubygems

Version Path
amqp-1.8.0 examples/routing/pubsub.rb
amqp-1.7.0 examples/routing/pubsub.rb
amqp-1.6.0 examples/routing/pubsub.rb
amqp-1.5.3 examples/routing/pubsub.rb
amqp-1.5.2 examples/routing/pubsub.rb
amqp-1.5.1 examples/routing/pubsub.rb
amqp-1.5.0 examples/routing/pubsub.rb
amqp-1.4.2 examples/routing/pubsub.rb
amqp-1.4.1 examples/routing/pubsub.rb
amqp-1.4.0 examples/routing/pubsub.rb
amqp-1.3.0 examples/routing/pubsub.rb
amqp-1.2.1 examples/routing/pubsub.rb
amqp-1.2.0 examples/routing/pubsub.rb
amqp-1.1.8 examples/routing/pubsub.rb
amqp-1.1.7 examples/routing/pubsub.rb
amqp-1.1.6 examples/routing/pubsub.rb
amqp-1.1.5 examples/routing/pubsub.rb
amqp-1.1.4 examples/routing/pubsub.rb
amqp-1.1.3 examples/routing/pubsub.rb
amqp-1.0.4 examples/routing/pubsub.rb