Interface WebSocketProtocolIfc

  • All Known Implementing Classes:
    WebSocketHixie76, WebSocketHybi

    public interface WebSocketProtocolIfc
    Interface which needs to be implemented by any implemention of version of WebSocket protocol.
    Currently we have stable version but there were older not compatible with current so it may be that new will come in future - also not compatible.
    Author:
    andrzej
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String WS_PROTOCOL_KEY
      HTTP header which contains name of subprotocol which should be used over established WebSocket connection
      static java.lang.String WS_VERSION_KEY
      HTTP header used by WebSocket to pass used version of WebSocket protocol from client to server
    • Field Detail

      • WS_VERSION_KEY

        static final java.lang.String WS_VERSION_KEY
        HTTP header used by WebSocket to pass used version of WebSocket protocol from client to server
        See Also:
        Constant Field Values
      • WS_PROTOCOL_KEY

        static final java.lang.String WS_PROTOCOL_KEY
        HTTP header which contains name of subprotocol which should be used over established WebSocket connection
        See Also:
        Constant Field Values
    • Method Detail

      • getId

        java.lang.String getId()
        Method to retrieve string identifier of implementation of protcol version
      • handshake

        boolean handshake​(WebSocketXMPPIOService service,
                          java.util.Map<java.lang.String,​java.lang.String> headers,
                          byte[] buf)
                   throws java.security.NoSuchAlgorithmException,
                          java.io.IOException
        Method responsible for handshaking of WebSocket using proper version of protocol.
        Returns:
        false - if implementation is not able to handshake using this version of protocol, in other case return true
        Throws:
        java.security.NoSuchAlgorithmException
        java.io.IOException
      • decodeFrame

        java.nio.ByteBuffer decodeFrame​(WebSocketXMPPIOService service,
                                        java.nio.ByteBuffer buf)
        Method responsible for decoding data received from socket and returning data after extracting it from WebSocket frame.
        Returns:
        decoded data or null if not full frame is available in input buffer
      • encodeFrameAndWrite

        void encodeFrameAndWrite​(WebSocketXMPPIOService service,
                                 java.nio.ByteBuffer buf)
                          throws java.io.IOException
        Method encodes data into WebSocket frame and writes it to passed service
        Throws:
        java.io.IOException
      • closeConnection

        void closeConnection​(WebSocketXMPPIOService service)
        Method closes connection by sending close frame