Method: MessageBus::HTTPClient#initialize

Defined in:
lib/message_bus/http_client.rb

#initialize(base_url, enable_long_polling: true, enable_chunked_encoding: true, min_poll_interval: 0.1, max_poll_interval: 180, background_callback_interval: 60, headers: {}) ⇒ Object

Returns Instance of MessageBus::HTTPClient.

Parameters:

  • base_url (String)

    Base URL of the message_bus server to connect to

  • enable_long_polling (Boolean) (defaults to: true)

    Enable long polling

  • enable_chunked_encoding (Boolean) (defaults to: true)

    Enable chunk encoding

  • min_poll_interval (Float, Integer) (defaults to: 0.1)

    Min poll interval when long polling in seconds

  • max_poll_interval (Float, Integer) (defaults to: 180)

    Max poll interval when long polling in seconds. When requests fail, the client will backoff and this is the upper limit.

  • background_callback_interval (Float, Integer) (defaults to: 60)

    Interval to poll when when polling in seconds.

  • headers (Hash) (defaults to: {})

    extra HTTP headers to be set on the polling requests.



67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# File 'lib/message_bus/http_client.rb', line 67

def initialize(base_url, enable_long_polling: true,
                         enable_chunked_encoding: true,
                         min_poll_interval: 0.1,
                         max_poll_interval: 180,
                         background_callback_interval: 60,
                         headers: {})

  @uri = URI(base_url)
  @enable_long_polling = enable_long_polling
  @enable_chunked_encoding = enable_chunked_encoding
  @min_poll_interval = min_poll_interval
  @max_poll_interval = max_poll_interval
  @background_callback_interval = background_callback_interval
  @headers = headers
  @client_id = SecureRandom.hex
  @channels = {}
  @status = STOPPED
  @mutex = Mutex.new
  @stats = Stats.new(0, 0)
end