module

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
Source
copy_response(source : ::HTTP::Headers, destination : ::HTTP::Headers, rules : Routing::HeaderRules = Routing::HeaderRules.new) : Nil
Source
read_response(io : IO, & : ::HTTP::Client::Response -> ) : Nil
Source
relay(downstream : IO, upstream : IO) : Nil
Source
request?(request : ::HTTP::Request) : Bool
Source
request_headers(request : ::HTTP::Request, upstream : URI, request_id : String, scheme : String, rules : Routing::HeaderRules = Routing::HeaderRules.new) : ::HTTP::Headers
Source
response?(request : ::HTTP::Request, response : ::HTTP::Client::Response) : Bool
Source
send_request(io : IO, request : ::HTTP::Request, headers : ::HTTP::Headers, resource : String = request.resource) : Nil
Source
upgrade(response : ::HTTP::Server::Response, upstream : IO, logger : Logging::Logger, request_id : String, upstream_name : String, registry : Runtime::WebSocketRegistry) : Nil
Source