Class WebSocketHttpRequestHandler

All Implemented Interfaces:
Aware, Lifecycle, ServletContextAware, HttpRequestHandler

public class WebSocketHttpRequestHandler extends Object implements HttpRequestHandler, Lifecycle, ServletContextAware
A HttpRequestHandler for processing WebSocket handshake requests.

This is the main class to use when configuring a server WebSocket at a specific URL. It is a very thin wrapper around a WebSocketHandler and a HandshakeHandler, also adapting the HttpServletRequest and HttpServletResponse to ServerHttpRequest and ServerHttpResponse, respectively.

Rossen Stoyanchev
  • Constructor Details

  • Method Details

    • decorate

      protected WebSocketHandler decorate(WebSocketHandler handler)
      Decorate the WebSocketHandler passed into the constructor.

      By default, LoggingWebSocketHandlerDecorator and ExceptionWebSocketHandlerDecorator are added.

    • getWebSocketHandler

      public WebSocketHandler getWebSocketHandler()
      Return the WebSocketHandler.
    • getHandshakeHandler

      public HandshakeHandler getHandshakeHandler()
      Return the HandshakeHandler.
    • setHandshakeInterceptors

      public void setHandshakeInterceptors(@Nullable List<HandshakeInterceptor> interceptors)
      Configure one or more WebSocket handshake request interceptors.
    • getHandshakeInterceptors

      public List<HandshakeInterceptor> getHandshakeInterceptors()
      Return the configured WebSocket handshake request interceptors.
    • setServletContext

      public void setServletContext(ServletContext servletContext)
      Description copied from interface: ServletContextAware
      Set the ServletContext that this object runs in.

      Invoked after population of normal bean properties but before an init callback like InitializingBean's afterPropertiesSet or a custom init-method. Invoked after ApplicationContextAware's setApplicationContext.

      Specified by:
      setServletContext in interface ServletContextAware
      servletContext - the ServletContext object to be used by this object
      See Also:
    • start

      public void start()
      Description copied from interface: Lifecycle
      Start this component.

      Should not throw an exception if the component is already running.

      In the case of a container, this will propagate the start signal to all components that apply.

      Specified by:
      start in interface Lifecycle
      See Also:
    • stop

      public void stop()
      Description copied from interface: Lifecycle
      Stop this component, typically in a synchronous fashion, such that the component is fully stopped upon return of this method. Consider implementing SmartLifecycle and its stop(Runnable) variant when asynchronous stop behavior is necessary.

      Note that this stop notification is not guaranteed to come before destruction: On regular shutdown, Lifecycle beans will first receive a stop notification before the general destruction callbacks are being propagated; however, on hot refresh during a context's lifetime or on aborted refresh attempts, a given bean's destroy method will be called without any consideration of stop signals upfront.

      Should not throw an exception if the component is not running (not started yet).

      In the case of a container, this will propagate the stop signal to all components that apply.

      Specified by:
      stop in interface Lifecycle
      See Also:
    • isRunning

      public boolean isRunning()
      Description copied from interface: Lifecycle
      Check whether this component is currently running.

      In the case of a container, this will return true only if all components that apply are currently running.

      Specified by:
      isRunning in interface Lifecycle
      whether the component is currently running
    • handleRequest

      public void handleRequest(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws ServletException, IOException
      Description copied from interface: HttpRequestHandler
      Process the given request, generating a response.
      Specified by:
      handleRequest in interface HttpRequestHandler
      servletRequest - current HTTP request
      servletResponse - current HTTP response
      ServletException - in case of general errors
      IOException - in case of I/O errors