Package org.java_websocket
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 Summary
Fields Modifier and Type Field Description private java.util.concurrent.ScheduledFuture
connectionLostCheckerFuture
Attribute for a task that checks for lost connectionsprivate java.util.concurrent.ScheduledExecutorService
connectionLostCheckerService
Attribute for a service that triggers lost connection checkingprivate long
connectionLostTimeout
Attribute for the lost connection check interval in nanosecondsprivate org.slf4j.Logger
log
Logger instanceprivate boolean
reuseAddr
Attribute which allows you to enable/disable the SO_REUSEADDR socket option.private java.lang.Object
syncConnectionLost
Attribute to sync onprivate boolean
tcpNoDelay
Attribute which allows you to deactivate the Nagle's algorithmprivate boolean
websocketRunning
Attribute to keep track if the WebSocket Server/Client is running/connected
-
Constructor Summary
Constructors Constructor Description AbstractWebSocket()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private void
cancelConnectionLostTimer()
Cancel any running timer for the connection lost detectionprivate 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 pingint
getConnectionLostTimeout()
Get the interval checking for lost connections Default is 60 secondsprotected abstract java.util.Collection<WebSocket>
getConnections()
Getter to get all the currently available connectionsboolean
isReuseAddr()
Tests Tests if SO_REUSEADDR is enabled.boolean
isTcpNoDelay()
Tests if TCP_NODELAY is enabled.private void
restartConnectionLostTimer()
This methods allows the reset of the connection lost timer in case of a changed parametervoid
setConnectionLostTimeout(int connectionLostTimeout)
Setter for the interval checking for lost connections A value lower or equal 0 results in the check to be deactivatedvoid
setReuseAddr(boolean reuseAddr)
Setter for soReuseAddrvoid
setTcpNoDelay(boolean tcpNoDelay)
Setter for tcpNoDelayprotected void
startConnectionLostTimer()
Start the connection lost timerprotected void
stopConnectionLostTimer()
Stop the connection lost timer-
Methods inherited from class org.java_websocket.WebSocketAdapter
onPreparePing, onWebsocketHandshakeReceivedAsClient, onWebsocketHandshakeReceivedAsServer, onWebsocketHandshakeSentAsClient, onWebsocketPing, onWebsocketPong
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.java_websocket.WebSocketListener
getLocalSocketAddress, getRemoteSocketAddress, onWebsocketClose, onWebsocketCloseInitiated, onWebsocketClosing, onWebsocketError, onWebsocketMessage, onWebsocketMessage, onWebsocketOpen, onWriteDemand
-
-
-
-
Field Detail
-
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 java.util.concurrent.ScheduledExecutorService connectionLostCheckerService
Attribute for a service that triggers lost connection checking- Since:
- 1.4.1
-
connectionLostCheckerFuture
private java.util.concurrent.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 java.lang.Object syncConnectionLost
Attribute to sync on
-
-
Method Detail
-
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 instanceminimumPongTime
- the lowest/oldest allowable last pong time (in nanoTime) before we consider the connection to be lost
-
getConnections
protected abstract java.util.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 tcpNoDelayEnable/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 soReuseAddrEnable/disable SO_REUSEADDR for the socket
- Parameters:
reuseAddr
- whether to enable or disable SO_REUSEADDR- Since:
- 1.3.5
-
-