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