Module: AnyCable::Rails::Connections::PersistentSession

Included in:
AnyCable::Rails::Connection
Defined in:
lib/anycable/rails/connections/persistent_session.rb,
lib/anycable/rails/next/connection/persistent_session.rb

Instance Method Summary collapse

Instance Method Details

#build_rack_request(env) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/anycable/rails/connections/persistent_session.rb', line 22

def build_rack_request(env)
  return super unless socket.session

  super.tap do |req|
    req.env[::Rack::RACK_SESSION] =
      SessionProxy.new(req.env[::Rack::RACK_SESSION], socket.session)
  end
end

#handle_channel_commandObject



18
19
20
# File 'lib/anycable/rails/connections/persistent_session.rb', line 18

def handle_channel_command(*)
  super.tap { commit_session! }
end

#handle_openObject



14
15
16
# File 'lib/anycable/rails/connections/persistent_session.rb', line 14

def handle_open
  super.tap { commit_session! }
end

#requestObject



17
18
19
20
21
22
23
# File 'lib/anycable/rails/next/connection/persistent_session.rb', line 17

def request
  @request ||= super.tap do |req|
    next unless socket.session
    req.env[::Rack::RACK_SESSION] =
      SessionProxy.new(req.env[::Rack::RACK_SESSION], socket.session)
  end
end