class Rpush::Daemon::Dispatcher::Apnsp8Http2

Constants

DEFAULT_TIMEOUT
URLS

Public Class Methods

new(app, delivery_class, _options = {}) click to toggle source
# File lib/rpush/daemon/dispatcher/apnsp8_http2.rb, line 16
def initialize(app, delivery_class, _options = {})
  @app = app
  @delivery_class = delivery_class

  @client = create_http2_client(app)
  @token_provider = Rpush::Daemon::Apnsp8::Token.new(@app)
end

Public Instance Methods

cleanup() click to toggle source
# File lib/rpush/daemon/dispatcher/apnsp8_http2.rb, line 28
def cleanup
  @client.close
end
dispatch(payload) click to toggle source
# File lib/rpush/daemon/dispatcher/apnsp8_http2.rb, line 24
def dispatch(payload)
  @delivery_class.new(@app, @client, @token_provider, payload.batch).perform
end

Private Instance Methods

create_http2_client(app) click to toggle source
# File lib/rpush/daemon/dispatcher/apnsp8_http2.rb, line 34
def create_http2_client(app)
  url = URLS[app.environment.to_sym]
  client = NetHttp2::Client.new(url, connect_timeout: DEFAULT_TIMEOUT)
  client.on(:error) do |error|
    log_error(error)
    reflect(:error, error)
  end
  client
end