tigase.server.websocket

## Class WebSocketHybi

- java.lang.Object
- - tigase.server.websocket.WebSocketHybi

- All Implemented Interfaces:
    WebSocketProtocolIfc

      public class WebSocketHybi
      extends Object
      implements WebSocketProtocolIfc

  Class implements Hybi (RFC compatible) version of WebSocket protocol specification which is used in connection handshaking as well as in frameing/deframing of data sent over WebSocket connection
  Author:
    andrzej
  See Also:
    WebSocket HyBi specification

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ID`

    - ### Fields inherited from interface tigase.server.websocket.WebSocketProtocolIfc

      `WS_PROTOCOL_KEY, WS_VERSION_KEY`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `WebSocketHybi()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `closeConnection(WebSocketXMPPIOService service)` Method closes connection by sending close frame
    `ByteBuffer` | `decodeFrame(WebSocketXMPPIOService service, ByteBuffer buf)` Method responsible for decoding data received from socket and returning data after extracting it from WebSocket frame.
    `void` | `encodeFrameAndWrite(WebSocketXMPPIOService service, ByteBuffer buf)` Method encodes data into WebSocket frame and writes it to passed service
    `String` | `getId()` Method to retrieve string identifier of implementation of protcol version
    `boolean` | `handshake(WebSocketXMPPIOService service, Map<String,String> headers, byte[] buf)` Method responsible for handshaking of WebSocket using proper version of protocol.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ID

          public static final String ID

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### WebSocketHybi

          public WebSocketHybi()

  - ### Method Detail

    - #### getId

          public String getId()

      Description copied from interface: `WebSocketProtocolIfc`
      Method to retrieve string identifier of implementation of protcol version
      Specified by:
        `getId` in interface `WebSocketProtocolIfc`
      Returns:

    - #### handshake

          public boolean handshake(WebSocketXMPPIOService service,
                                   Map<String,String> headers,
                                   byte[] buf)
                            throws NoSuchAlgorithmException,
                                   IOException

      Description copied from interface: `WebSocketProtocolIfc`
      Method responsible for handshaking of WebSocket using proper version of protocol.
      Specified by:
        `handshake` in interface `WebSocketProtocolIfc`
      Returns:
        false - if implementation is not able to handshake using this version of protocol, in other case return true
      Throws:
        `NoSuchAlgorithmException`
        `IOException`

    - #### decodeFrame

          public ByteBuffer decodeFrame(WebSocketXMPPIOService service,
                                        ByteBuffer buf)

      Description copied from interface: `WebSocketProtocolIfc`
      Method responsible for decoding data received from socket and returning data after extracting it from WebSocket frame.
      Specified by:
        `decodeFrame` in interface `WebSocketProtocolIfc`
      Returns:
        decoded data or null if not full frame is available in input buffer

    - #### encodeFrameAndWrite

          public void encodeFrameAndWrite(WebSocketXMPPIOService service,
                                          ByteBuffer buf)
                                   throws IOException

      Description copied from interface: `WebSocketProtocolIfc`
      Method encodes data into WebSocket frame and writes it to passed service
      Specified by:
        `encodeFrameAndWrite` in interface `WebSocketProtocolIfc`
      Throws:
        `IOException`

    - #### closeConnection

          public void closeConnection(WebSocketXMPPIOService service)

      Description copied from interface: `WebSocketProtocolIfc`
      Method closes connection by sending close frame
      Specified by:
        `closeConnection` in interface `WebSocketProtocolIfc`

Copyright © 2022 "Tigase, Inc.". All rights reserved.