Method: MessageBus::ConnectionManager#add_client

Defined in:
lib/message_bus/connection_manager.rb

#add_client(client) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/message_bus/connection_manager.rb', line 44

def add_client(client)
  synchronize do
    existing = @clients[client.client_id]
    if existing && existing.seq > client.seq
      client.cancel
    else
      if existing
        remove_client(existing)
        existing.cancel
      end

      @clients[client.client_id] = client
      @subscriptions[client.site_id] ||= {}
      client.subscriptions.each do |k, v|
        subscribe_client(client, k)
      end
    end
  end
end