force websocket idle timeout default to be set on endpoint

Signed-off-by: Lachlan Roberts <lachlan@webtide.com>
This commit is contained in:
Lachlan Roberts 2019-05-10 14:22:24 +10:00 committed by Greg Wilkins
parent 2782344d4c
commit 7e5dcda708
2 changed files with 12 additions and 30 deletions

View File

@ -33,7 +33,7 @@ public final class WebSocketConstants
public static final int DEFAULT_INPUT_BUFFER_SIZE = 4 * 1024;
public static final int DEFAULT_OUTPUT_BUFFER_SIZE = 4 * 1024;
public static final boolean DEFAULT_AUTO_FRAGMENT = true;
public static final Duration DEFAULT_IDLE_TIMEOUT = Duration.ZERO;
public static final Duration DEFAULT_IDLE_TIMEOUT = Duration.ofSeconds(30);
public static final Duration DEFAULT_WRITE_TIMEOUT = Duration.ZERO;
/**

View File

@ -78,8 +78,8 @@ public class WebSocketChannel implements IncomingFrames, FrameHandler.CoreSessio
private int outputBufferSize = WebSocketConstants.DEFAULT_OUTPUT_BUFFER_SIZE;
private long maxBinaryMessageSize = WebSocketConstants.DEFAULT_MAX_BINARY_MESSAGE_SIZE;
private long maxTextMessageSize = WebSocketConstants.DEFAULT_MAX_TEXT_MESSAGE_SIZE;
private Duration idleTimeout;
private Duration idleWriteTimeout;
private Duration idleTimeout = WebSocketConstants.DEFAULT_IDLE_TIMEOUT;
private Duration writeTimeout = WebSocketConstants.DEFAULT_WRITE_TIMEOUT;
public WebSocketChannel(FrameHandler handler,
Behavior behavior,
@ -225,36 +225,28 @@ public class WebSocketChannel implements IncomingFrames, FrameHandler.CoreSessio
@Override
public Duration getIdleTimeout()
{
if (getConnection() == null)
return idleTimeout;
else
return Duration.ofMillis(getConnection().getEndPoint().getIdleTimeout());
return idleTimeout;
}
@Override
public void setIdleTimeout(Duration timeout)
{
if (getConnection() == null)
idleTimeout = timeout;
else
getConnection().getEndPoint().setIdleTimeout(timeout.toMillis());
idleTimeout = timeout;
if (connection != null)
connection.getEndPoint().setIdleTimeout(timeout.toMillis());
}
@Override
public Duration getWriteTimeout()
{
if (getConnection() == null)
return idleWriteTimeout;
else
return Duration.ofMillis(getConnection().getFrameFlusher().getIdleTimeout());
return writeTimeout;
}
@Override
public void setWriteTimeout(Duration timeout)
{
if (getConnection() == null)
idleWriteTimeout = timeout;
else
writeTimeout = timeout;
if (getConnection() != null)
getConnection().getFrameFlusher().setIdleTimeout(timeout.toMillis());
}
@ -281,19 +273,9 @@ public class WebSocketChannel implements IncomingFrames, FrameHandler.CoreSessio
public void setWebSocketConnection(WebSocketConnection connection)
{
connection.getEndPoint().setIdleTimeout(idleTimeout.toMillis());
connection.getFrameFlusher().setIdleTimeout(writeTimeout.toMillis());
this.connection = connection;
if (idleTimeout != null)
{
getConnection().getEndPoint().setIdleTimeout(idleTimeout.toMillis());
idleTimeout = null;
}
if (idleWriteTimeout != null)
{
getConnection().getFrameFlusher().setIdleTimeout(idleWriteTimeout.toMillis());
idleWriteTimeout = null;
}
}
/**