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<?>connectionLostCheckerFutureAttribute for a task that checks for lost connectionsprivate java.util.concurrent.ScheduledExecutorServiceconnectionLostCheckerServiceAttribute for a service that triggers lost connection checkingprivate longconnectionLostTimeoutAttribute for the lost connection check interval in nanosecondsprivate org.slf4j.LoggerlogLogger instanceprivate booleanreuseAddrAttribute which allows you to enable/disable the SO_REUSEADDR socket option.private java.lang.ObjectsyncConnectionLostAttribute to sync onprivate booleantcpNoDelayAttribute which allows you to deactivate the Nagle's algorithmprivate booleanwebsocketRunningAttribute 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 voidcancelConnectionLostTimer()Cancel any running timer for the connection lost detectionprivate voidexecuteConnectionLostDetection(WebSocket webSocket, long minimumPongTime)Send a ping to the endpoint or close the connection since the other endpoint did not respond with a pingintgetConnectionLostTimeout()Get the interval checking for lost connections Default is 60 secondsprotected abstract java.util.Collection<WebSocket>getConnections()Getter to get all the currently available connectionsbooleanisReuseAddr()Tests Tests if SO_REUSEADDR is enabled.booleanisTcpNoDelay()Tests if TCP_NODELAY is enabled.private voidrestartConnectionLostTimer()This methods allows the reset of the connection lost timer in case of a changed parametervoidsetConnectionLostTimeout(int connectionLostTimeout)Setter for the interval checking for lost connections A value lower or equal 0 results in the check to be deactivatedvoidsetReuseAddr(boolean reuseAddr)Setter for soReuseAddrvoidsetTcpNoDelay(boolean tcpNoDelay)Setter for tcpNoDelayprotected voidstartConnectionLostTimer()Start the connection lost timerprotected voidstopConnectionLostTimer()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
-
-