module AnyCable::Rails::Connections::PersistentSession

def build_rack_request(env)

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

def commit_session!

def commit_session!
  return unless request_loaded? && request.session.respond_to?(:loaded?) && request.session.loaded?
  socket.session = request.session.to_json
end

def handle_channel_command(*)

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

def handle_open

def handle_open
  super.tap { commit_session! }
end