Sha256: 874ac1e771f93e472aa95bb814f236a241005fcc552789d375c86a56929b6f9a

Contents?: true

Size: 889 Bytes

Versions: 1

Compression:

Stored size: 889 Bytes

Contents

require 'bundler/setup'
require 'celluloid_pubsub'

class Subscriber
  include Celluloid
  include Celluloid::Logger

  def initialize
    CelluloidPubsub::Client.connect(actor: Actor.current) do |ws|
      ws.subscribe('test_channel') # this will execute after the connection is opened
    end
  end

  def on_message(message)
    puts "got #{message.inspect}"
  end

  def on_close(code, reason)
    puts "websocket connection closed: #{code.inspect}, #{reason.inspect}"
    terminate
   end
  end

class Publisher
  include Celluloid
  include Celluloid::Logger

  def initialize
    CelluloidPubsub::Client.connect(actor: Actor.current) do |ws|
      ws.publish('test_channel', 'data' => 'my_message') # the message needs to be a Hash
    end
  end
end

CelluloidPubsub::WebServer.supervise_as(:web_server)
Subscriber.supervise_as(:subscriber)
Publisher.supervise_as(:publisher)
sleep

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
celluloid_pubsub-0.0.5 examples/simple_test.rb