public class DefaultSockJsService extends AbstractSockJsService
SockJsService
adding support for transport handling
and session management. See AbstractSockJsService
base class for important
details on request mapping.Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.ScheduledFuture |
sessionCleanupTask |
private ServerWebSocketSessionInitializer |
sessionInitializer |
private java.util.Map<java.lang.String,AbstractSockJsSession> |
sessions |
private java.util.Map<TransportType,TransportHandler> |
transportHandlers |
logger
Constructor and Description |
---|
DefaultSockJsService(TaskScheduler taskScheduler)
Create an instance with default
transport handler types. |
DefaultSockJsService(TaskScheduler taskScheduler,
java.util.Set<TransportHandler> transportHandlers,
TransportHandler... transportHandlerOverrides)
Create an instance by overriding or replacing completely the default
transport handler types. |
Modifier and Type | Method and Description |
---|---|
protected void |
addTransportHandlers(java.util.Collection<TransportHandler> handlers) |
protected java.util.Set<TransportHandler> |
getDefaultTransportHandlers() |
protected AbstractSockJsSession |
getSockJsSession(java.lang.String sessionId,
WebSocketHandler handler,
TransportHandler transportHandler,
ServerHttpRequest request,
ServerHttpResponse response) |
java.util.Map<TransportType,TransportHandler> |
getTransportHandlers() |
protected void |
handleRawWebSocketRequest(ServerHttpRequest request,
ServerHttpResponse response,
WebSocketHandler webSocketHandler) |
protected void |
handleTransportRequest(ServerHttpRequest request,
ServerHttpResponse response,
java.lang.String sessionId,
TransportType transportType,
WebSocketHandler webSocketHandler) |
private void |
scheduleSessionTask() |
addCacheHeaders, addCorsHeaders, addNoCacheHeaders, getDisconnectDelay, getHeartbeatTime, getName, getSockJsClientLibraryUrl, getStreamBytesLimit, getTaskScheduler, handleRequest, isJsessionIdCookieRequired, isWebSocketEnabled, sendMethodNotAllowed, setDisconnectDelay, setHeartbeatTime, setJsessionIdCookieRequired, setName, setSockJsClientLibraryUrl, setStreamBytesLimit, setValidSockJsPrefixes, setWebSocketsEnabled, validateRequest
private final java.util.Map<TransportType,TransportHandler> transportHandlers
private final java.util.Map<java.lang.String,AbstractSockJsSession> sessions
private final ServerWebSocketSessionInitializer sessionInitializer
private java.util.concurrent.ScheduledFuture sessionCleanupTask
public DefaultSockJsService(TaskScheduler taskScheduler)
transport handler
types.taskScheduler
- a task scheduler for heart-beat messages and removing
timed-out sessions; the provided TaskScheduler should be declared as a
Spring bean to ensure it is initialized at start up and shut down when the
application stops.public DefaultSockJsService(TaskScheduler taskScheduler, java.util.Set<TransportHandler> transportHandlers, TransportHandler... transportHandlerOverrides)
transport handler
types.taskScheduler
- a task scheduler for heart-beat messages and removing
timed-out sessions; the provided TaskScheduler should be declared as a
Spring bean to ensure it is initialized at start up and shut down when the
application stops.transportHandlers
- the transport handlers to use (replaces the default ones);
can be null
.transportHandlerOverrides
- zero or more overrides to the default transport
handler types.protected final java.util.Set<TransportHandler> getDefaultTransportHandlers()
protected void addTransportHandlers(java.util.Collection<TransportHandler> handlers)
public java.util.Map<TransportType,TransportHandler> getTransportHandlers()
protected void handleRawWebSocketRequest(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler webSocketHandler) throws java.io.IOException
handleRawWebSocketRequest
in class AbstractSockJsService
java.io.IOException
protected void handleTransportRequest(ServerHttpRequest request, ServerHttpResponse response, java.lang.String sessionId, TransportType transportType, WebSocketHandler webSocketHandler) throws java.io.IOException, TransportErrorException
handleTransportRequest
in class AbstractSockJsService
java.io.IOException
TransportErrorException
protected AbstractSockJsSession getSockJsSession(java.lang.String sessionId, WebSocketHandler handler, TransportHandler transportHandler, ServerHttpRequest request, ServerHttpResponse response)
private void scheduleSessionTask()