Package tigase.server.websocket

# Class WebSocketHybi

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

All Implemented Interfaces:
  `WebSocketProtocolIfc`

@Bean(name="hybiProtocol", parent=WebSocketClientConnectionManager.class, active=true) 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
  Description
  `static final String`
  `ID`

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

  `WS_PROTOCOL_KEY, WS_VERSION_KEY`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WebSocketHybi()`

- ## Method Summary

  Modifier and Type
  Method
  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 Details

  - ### ID

    public static final String ID
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### WebSocketHybi

    public WebSocketHybi()

- ## Method Details

  - ### 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`

  - ### 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`