Interface Session

  • All Superinterfaces:
    java.lang.AutoCloseable, java.io.Closeable
    All Known Implementing Classes:
    JsrSession, WebSocketSession

    public interface Session
    extends java.io.Closeable
    Session represents an active link of communications with a Remote WebSocket Endpoint.
    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      void close()
      Request a close of the current conversation with a normal status code and no reason phrase.
      void close​(int statusCode, java.lang.String reason)
      Send a websocket Close frame, with status code.
      void close​(CloseStatus closeStatus)
      Request Close the current conversation, giving a reason for the closure.
      void disconnect()
      Issue a harsh disconnect of the underlying connection.
      long getIdleTimeout()
      Return the number of milliseconds before this conversation will be closed by the container if it is inactive, ie no messages are either sent or received in that time.
      java.net.InetSocketAddress getLocalAddress()
      Get the address of the local side.
      WebSocketPolicy getPolicy()
      Access the (now read-only) WebSocketPolicy in use for this connection.
      java.lang.String getProtocolVersion()
      Returns the version of the websocket protocol currently being used.
      RemoteEndpoint getRemote()
      Return a reference to the RemoteEndpoint object representing the other end of this conversation.
      java.net.InetSocketAddress getRemoteAddress()
      Get the address of the remote side.
      UpgradeRequest getUpgradeRequest()
      Get the UpgradeRequest used to create this session
      UpgradeResponse getUpgradeResponse()
      Get the UpgradeResponse used to create this session
      boolean isOpen()
      Return true if and only if the underlying socket is open.
      boolean isSecure()
      Return true if and only if the underlying socket is using a secure transport.
      void setIdleTimeout​(long ms)
      Set the number of milliseconds before this conversation will be closed by the container if it is inactive, ie no messages are either sent or received.
      SuspendToken suspend()
      Suspend the incoming read events on the connection.
    • Method Detail

      • close

        void close()
        Request a close of the current conversation with a normal status code and no reason phrase.

        This will enqueue a graceful close to the remote endpoint.

        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        See Also:
        close(CloseStatus), close(int, String), disconnect()
      • close

        void close​(CloseStatus closeStatus)
        Request Close the current conversation, giving a reason for the closure. Note the websocket spec defines the acceptable uses of status codes and reason phrases.

        This will enqueue a graceful close to the remote endpoint.

        Parameters:
        closeStatus - the reason for the closure
        See Also:
        close(), close(int, String), disconnect()
      • close

        void close​(int statusCode,
                   java.lang.String reason)
        Send a websocket Close frame, with status code.

        This will enqueue a graceful close to the remote endpoint.

        Parameters:
        statusCode - the status code
        reason - the (optional) reason. (can be null for no reason)
        See Also:
        StatusCode, close(), close(CloseStatus), disconnect()
      • getIdleTimeout

        long getIdleTimeout()
        Return the number of milliseconds before this conversation will be closed by the container if it is inactive, ie no messages are either sent or received in that time.
        Returns:
        the timeout in milliseconds.
      • getLocalAddress

        java.net.InetSocketAddress getLocalAddress()
        Get the address of the local side.
        Returns:
        the local side address
      • getProtocolVersion

        java.lang.String getProtocolVersion()
        Returns the version of the websocket protocol currently being used. This is taken as the value of the Sec-WebSocket-Version header used in the opening handshake. i.e. "13".
        Returns:
        the protocol version
      • getRemote

        RemoteEndpoint getRemote()
        Return a reference to the RemoteEndpoint object representing the other end of this conversation.
        Returns:
        the remote endpoint
      • getRemoteAddress

        java.net.InetSocketAddress getRemoteAddress()
        Get the address of the remote side.
        Returns:
        the remote side address
      • getUpgradeRequest

        UpgradeRequest getUpgradeRequest()
        Get the UpgradeRequest used to create this session
        Returns:
        the UpgradeRequest used to create this session
      • getUpgradeResponse

        UpgradeResponse getUpgradeResponse()
        Get the UpgradeResponse used to create this session
        Returns:
        the UpgradeResponse used to create this session
      • isOpen

        boolean isOpen()
        Return true if and only if the underlying socket is open.
        Returns:
        whether the session is open
      • isSecure

        boolean isSecure()
        Return true if and only if the underlying socket is using a secure transport.
        Returns:
        whether its using a secure transport
      • setIdleTimeout

        void setIdleTimeout​(long ms)
        Set the number of milliseconds before this conversation will be closed by the container if it is inactive, ie no messages are either sent or received.
        Parameters:
        ms - the number of milliseconds.
      • suspend

        SuspendToken suspend()
        Suspend the incoming read events on the connection.
        Returns:
        the suspend token suitable for resuming the reading of data on the connection.