class Rcom::Topic

Attributes

channel[R]
node[R]

Public Class Methods

new(params) click to toggle source
# File lib/rcom/topic.rb, line 5
def initialize(params)
  @node = params[:node]
  @key = params[:channel]
end

Public Instance Methods

publish(message) click to toggle source
# File lib/rcom/topic.rb, line 10
def publish(message)
  begin
    node.publish(channel, message.to_msgpack)
    return true
  rescue
    return nil
  end
end
subscribe() { |message| ... } click to toggle source
# File lib/rcom/topic.rb, line 19
def subscribe
  begin
    node.subscribe(channel) do |on|
      on.message do |channel, message|
        message = MessagePack.unpack(
          message,
          symbolize_keys: true
        )
        yield message
      end
    end
  rescue
    sleep 1
    retry
  rescue Interrupt => _
  end
end