Method: NATS.start

Defined in:
lib/nats/client.rb

.start(*args, &blk) ⇒ Object

Create a default client connection to the server.

See Also:

  • connect


236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
# File 'lib/nats/client.rb', line 236

def start(*args, &blk)
  @reactor_was_running = EM.reactor_running?
  unless (@reactor_was_running || blk)
    raise(Error, "EM needs to be running when NATS.start is called without a run block")
  end
  # Setup optimized select versions
  if EM.epoll?
    EM.epoll
  elsif EM.kqueue?
    EM.kqueue
  elsif EM.library_type == :java
    # No warning needed, we're using Java NIO
  else
    Kernel.warn('Neither epoll nor kqueue are supported, performance may be impacted')
  end
  EM.run { @client = connect(*args, &blk) }
end