Interface WebSocketHttpExchange

  • All Superinterfaces:
    AutoCloseable, Closeable
    All Known Implementing Classes:
    AsyncWebSocketHttpServerExchange, BlockingWebSocketHttpServerExchange

    public interface WebSocketHttpExchange
    extends Closeable
    An abstraction for a Http exchange. Undertow uses 3 different types of exchanges:

    - async - blocking - servlet

    This class provides a way to operate on the underling exchange while providing the correct semantics regardless of the underlying exchange type.

    The main use case for this is web sockets. Web sockets should be able to perform a handshake regardless of the nature of the underlying request, while still respecting servlet filters, security etc.

    Author:
    Stuart Douglas
    • Method Detail

      • putAttachment

        <T> void putAttachment​(AttachmentKey<T> key,
                               T value)
      • getRequestHeader

        String getRequestHeader​(String headerName)
        gets the first request header with the specified name
        Parameters:
        headerName - The header name
        Returns:
        The header value, or null
      • getRequestHeaders

        Map<String,​List<String>> getRequestHeaders()
        Returns:
        An unmodifiable map of request headers
      • getResponseHeader

        String getResponseHeader​(String headerName)
        get a response header
        Parameters:
        headerName - The header name
        Returns:
        The header value, or null
      • getResponseHeaders

        Map<String,​List<String>> getResponseHeaders()
        Returns:
        An unmodifiable map of response headers
      • setResponseHeaders

        void setResponseHeaders​(Map<String,​List<String>> headers)
        Sets the response headers
      • setResponseHeader

        void setResponseHeader​(String headerName,
                               String headerValue)
        Set a response header
        Parameters:
        headerName - The header name
        headerValue - The header value
      • upgradeChannel

        void upgradeChannel​(HttpUpgradeListener upgradeCallback)
        Upgrade the underlying channel
        Parameters:
        upgradeCallback -
      • sendData

        org.xnio.IoFuture<Void> sendData​(ByteBuffer data)
        Send some data
        Parameters:
        data - The data
      • readRequestData

        org.xnio.IoFuture<byte[]> readRequestData()
        Gets the body of the request.
      • endExchange

        void endExchange()
        End the exchange normally. If this is a blocking exchange this may be a noop, and the exchange will actually end when the call stack returns
      • getRequestScheme

        String getRequestScheme()
        Get the request scheme, usually http or https
        Returns:
        The request scheme
      • getRequestURI

        String getRequestURI()
        Returns:
        The request URI, including the query string
      • getBufferPool

        ByteBufferPool getBufferPool()
        Returns:
        The buffer pool
      • getQueryString

        String getQueryString()
        Returns:
        The query string
      • getSession

        Object getSession()
        Gets the session, if any
        Returns:
        The session object, or null
      • getUserPrincipal

        Principal getUserPrincipal()
      • isUserInRole

        boolean isUserInRole​(String role)
      • getOptions

        org.xnio.OptionMap getOptions()