Class AbstractWebSocket

java.lang.Object
org.java_websocket.WebSocketAdapter
org.java_websocket.AbstractWebSocket
All Implemented Interfaces:
WebSocketListener
Direct Known Subclasses:
WebSocketClient, WebSocketServer

public abstract class AbstractWebSocket extends WebSocketAdapter
Base class for additional implementations for the server as well as the client
  • Field Details

    • log

      private final org.slf4j.Logger log
      Logger instance
      Since:
      1.4.0
    • tcpNoDelay

      private boolean tcpNoDelay
      Attribute which allows you to deactivate the Nagle's algorithm
      Since:
      1.3.3
    • reuseAddr

      private boolean reuseAddr
      Attribute which allows you to enable/disable the SO_REUSEADDR socket option.
      Since:
      1.3.5
    • connectionLostCheckerService

      private ScheduledExecutorService connectionLostCheckerService
      Attribute for a service that triggers lost connection checking
      Since:
      1.4.1
    • connectionLostCheckerFuture

      private ScheduledFuture<?> connectionLostCheckerFuture
      Attribute for a task that checks for lost connections
      Since:
      1.4.1
    • connectionLostTimeout

      private long connectionLostTimeout
      Attribute for the lost connection check interval in nanoseconds
      Since:
      1.3.4
    • websocketRunning

      private boolean websocketRunning
      Attribute to keep track if the WebSocket Server/Client is running/connected
      Since:
      1.3.9
    • syncConnectionLost

      private final Object syncConnectionLost
      Attribute to sync on
  • Constructor Details

    • AbstractWebSocket

      public AbstractWebSocket()
  • Method Details

    • getConnectionLostTimeout

      public int getConnectionLostTimeout()
      Get the interval checking for lost connections Default is 60 seconds
      Returns:
      the interval in seconds
      Since:
      1.3.4
    • setConnectionLostTimeout

      public void setConnectionLostTimeout(int connectionLostTimeout)
      Setter for the interval checking for lost connections A value lower or equal 0 results in the check to be deactivated
      Parameters:
      connectionLostTimeout - the interval in seconds
      Since:
      1.3.4
    • stopConnectionLostTimer

      protected void stopConnectionLostTimer()
      Stop the connection lost timer
      Since:
      1.3.4
    • startConnectionLostTimer

      protected void startConnectionLostTimer()
      Start the connection lost timer
      Since:
      1.3.4
    • restartConnectionLostTimer

      private void restartConnectionLostTimer()
      This methods allows the reset of the connection lost timer in case of a changed parameter
      Since:
      1.3.4
    • executeConnectionLostDetection

      private void executeConnectionLostDetection(WebSocket webSocket, long minimumPongTime)
      Send a ping to the endpoint or close the connection since the other endpoint did not respond with a ping
      Parameters:
      webSocket - the websocket instance
      minimumPongTime - the lowest/oldest allowable last pong time (in nanoTime) before we consider the connection to be lost
    • getConnections

      protected abstract Collection<WebSocket> getConnections()
      Getter to get all the currently available connections
      Returns:
      the currently available connections
      Since:
      1.3.4
    • cancelConnectionLostTimer

      private void cancelConnectionLostTimer()
      Cancel any running timer for the connection lost detection
      Since:
      1.3.4
    • isTcpNoDelay

      public boolean isTcpNoDelay()
      Tests if TCP_NODELAY is enabled.
      Returns:
      a boolean indicating whether or not TCP_NODELAY is enabled for new connections.
      Since:
      1.3.3
    • setTcpNoDelay

      public void setTcpNoDelay(boolean tcpNoDelay)
      Setter for tcpNoDelay

      Enable/disable TCP_NODELAY (disable/enable Nagle's algorithm) for new connections

      Parameters:
      tcpNoDelay - true to enable TCP_NODELAY, false to disable.
      Since:
      1.3.3
    • isReuseAddr

      public boolean isReuseAddr()
      Tests Tests if SO_REUSEADDR is enabled.
      Returns:
      a boolean indicating whether or not SO_REUSEADDR is enabled.
      Since:
      1.3.5
    • setReuseAddr

      public void setReuseAddr(boolean reuseAddr)
      Setter for soReuseAddr

      Enable/disable SO_REUSEADDR for the socket

      Parameters:
      reuseAddr - whether to enable or disable SO_REUSEADDR
      Since:
      1.3.5