class Slack::RealTime::Concurrency::Eventmachine::Socket

Public Instance Methods

send_data(message) click to toggle source
# File lib/slack/real_time/concurrency/eventmachine.rb, line 37
def send_data(message)
  logger.debug("#{self.class}##{__method__}") { message }
  driver.send(message)
end
start_async(client) click to toggle source
# File lib/slack/real_time/concurrency/eventmachine.rb, line 29
def start_async(client)
  thread = ensure_reactor_running

  client.run_loop

  thread
end

Protected Instance Methods

connect() click to toggle source
# File lib/slack/real_time/concurrency/eventmachine.rb, line 53
def connect
  @driver = Client.new(url, nil, options.merge(logger: logger))
end
ensure_reactor_running() click to toggle source

@return [Thread]

# File lib/slack/real_time/concurrency/eventmachine.rb, line 45
def ensure_reactor_running
  return if EventMachine.reactor_running?

  reactor = Thread.new { EventMachine.run }
  Thread.pass until EventMachine.reactor_running?
  reactor
end