Class WebSocketHandshakeDetectorFilter

  • All Implemented Interfaces:
    Filter

    public class WebSocketHandshakeDetectorFilter
    extends Object
    implements Filter
    A Filter that determines if the current request is a WebSocket handshake, in which case a WebSocketHandshakeContext is added to the Context chain. Then, it adds WebSocket connection specific headers into the Handshake response.

    This is an internal filter to be used with is used with the output of WebSocketProxyFilterProvider. It allows adding header processing steps before handling the request without loosing request type (WS Handshake) information. This filter aims to be used in a Reverse Proxy filter chain.

    If the request is a WebSocket Handshake, and the response status is HTTP code 101 (SWITCHING PROTOCOLS), then the filter sets these two response headers:

     
       Connection: Upgrade
       Upgrade: websocket
     
     
    See Also:
    RFC 6455 on WebSocket Handshake
    • Constructor Detail

      • WebSocketHandshakeDetectorFilter

        public WebSocketHandshakeDetectorFilter()
    • Method Detail

      • filter

        public Promise<Response,​NeverThrowsException> filter​(Context context,
                                                                   Request request,
                                                                   Handler next)
        Description copied from interface: Filter
        Filters the request and/or response of an exchange. To pass the request to the next filter or handler in the chain, the filter calls next.handle(context, request).

        This method may elect not to pass the request to the next filter or handler, and instead handle the request itself. It can achieve this by merely avoiding a call to next.handle(context, request) and creating its own response object. The filter is also at liberty to replace a response with another of its own by intercepting the response returned by the next handler.

        Specified by:
        filter in interface Filter
        Parameters:
        context - The request context.
        request - The request.
        next - The next filter or handler in the chain to handle the request.
        Returns:
        A Promise representing the response to be returned to the client.