class StompServer::TopicManager

Attributes

frame_index[RW]

Public Class Methods

new() click to toggle source
# File lib/stomp_server/topic_manager.rb, line 6
def initialize
  @frame_index =0
  @topics = Hash.new { Array.new }
  puts "TopicManager initialized"
end

Public Instance Methods

disconnect(user) click to toggle source
# File lib/stomp_server/topic_manager.rb, line 28
def disconnect(user)
  @topics.each do |dest, queue|
    queue.delete_if { |qu| qu == user }
  end
end
index() click to toggle source
# File lib/stomp_server/topic_manager.rb, line 12
def index
  @frame_index
end
next_index() click to toggle source
# File lib/stomp_server/topic_manager.rb, line 16
def next_index
  @frame_index += 1
end
sendmsg(msg) click to toggle source
# File lib/stomp_server/topic_manager.rb, line 34
def sendmsg(msg)
  msg.command = "MESSAGE"
  topic = msg.headers['destination']
  @topics[topic].each do |user|
    user.stomp_send_data(msg)
  end
end
subscribe(topic, user) click to toggle source
# File lib/stomp_server/topic_manager.rb, line 20
def subscribe(topic, user)
  @topics[topic] += [user]
end
unsubscribe(topic, user) click to toggle source
# File lib/stomp_server/topic_manager.rb, line 24
def unsubscribe(topic, user)
  @topics[topic].delete(user) 
end