Via::Proxy::WebSocketTunnel
Handles the HTTP/1.1 handshake and raw byte relay for WebSocket upgrades. Upgraded connections are intentionally separate from the reusable HTTP pool.
Constants
BUFFER_SIZE = 16 * 1024
Instance methods
connect(upstream : URI, timeouts : Routing::Timeouts = Routing::Timeouts.new) : IO
Sourcecopy_response(source : ::HTTP::Headers, destination : ::HTTP::Headers, rules : Routing::HeaderRules = Routing::HeaderRules.new) : Nil
Sourceread_response(io : IO, & : ::HTTP::Client::Response -> ) : Nil
Sourcerelay(downstream : IO, upstream : IO) : Nil
Sourcerequest?(request : ::HTTP::Request) : Bool
Sourcerequest_headers(request : ::HTTP::Request, upstream : URI, request_id : String, scheme : String, rules : Routing::HeaderRules = Routing::HeaderRules.new) : ::HTTP::Headers
Sourceresponse?(request : ::HTTP::Request, response : ::HTTP::Client::Response) : Bool
Sourcesend_request(io : IO, request : ::HTTP::Request, headers : ::HTTP::Headers, resource : String = request.resource) : Nil
Sourceupgrade(response : ::HTTP::Server::Response, upstream : IO, logger : Logging::Logger, request_id : String, upstream_name : String, registry : Runtime::WebSocketRegistry) : Nil
Source