module Async::WebSocket::Adapters::Rails

Public Class Methods

open(request, **options, &block) click to toggle source
# File lib/async/websocket/adapters/rails.rb, line 29
def self.open(request, **options, &block)
        if response = Rack.open(request.env, **options, &block)
                response[1]['rack.hijack'] = lambda do |stream|
                        response[2].call(stream)
                end
                
                # Close the response to prevent Rails from... trying to render a view?
                return ::ActionDispatch::Response.new(response[0], response[1], nil).tap(&:close)
        end
        
        return ::ActionDispatch::Response.new(404, [], [])
end